k8s集群架构的二进制部署——k8s集群学习的基础(代码片段)

码海小虾米_ 码海小虾米_     2022-12-20     771

关键词:

一、部署etcd

Master上操作

[root@192 etcd-cert]# cd /usr/local/bin/
[root@192 bin]# rz -E(cfssl  cfssl-certinfo  cfssljson)
[root@192 bin]# chmod +x *
[root@192 bin]# ls
cfssl  cfssl-certinfo  cfssljson

//生成ETCD证书
[root@192 ~]# mkdir /opt/k8s
[root@192 ~]# cd /opt/k8s/
[root@192 k8s]# rz -E(etcd-cert.sh  etcd.sh[需要修改]
[root@192 k8s]# chmod +x etcd*
[root@192 k8s]# mkdir etcd-cert
[root@192 k8s]# mv etcd-cert.sh etcd-cert
[root@192 k8s]# cd etcd-cert/
[root@192 etcd-cert]# ./etcd-cert.sh 

① 生成ETCD证书,etcd-cert.sh需要进行修改集群ip

然后再生成ETCD证书

//ETCD 二进制包
[root@192 k8s]# cd /opt/k8s/
[root@192 k8s]# rz -E(zxvf etcd-v3.3.10-linux-amd64.tar.gz)
rz waiting to receive.
[root@192 k8s]# ls
etcd-cert  etcd.sh  etcd-v3.3.10-linux-amd64.tar.gz
[root@192 k8s]# tar zxvf etcd-v3.3.10-linux-amd64.tar.gz

 //配置文件,命令文件,证书
[root@192 k8s]# mkdir /opt/etcd/cfg,bin,ssl -p
[root@192 k8s]# mv etcd-v3.3.10-linux-amd64/etcd etcd-v3.3.10-linux-amd64/etcdctl /opt/etcd/bin/

//证书拷贝
[root@192 k8s]# cp etcd-cert/*.pem /opt/etcd/ssl/

//进入卡住状态等待其他节点加入
[root@192 k8s]# ./etcd.sh etcd01 192.168.80.40 etcd02=https://192.168.80.50:2380,etcd03=https://192.168.80.60:2380

② 进入卡住状态等待其他节点加入


[root@192 k8s]# ps -ef | grep etcd
root       8235   6677  0 23:44 pts/3    00:00:00 /bin/bash ./etcd.sh etcd01 192.168.80.40 etcd02=https://192.168.80.50:2380,etcd03=https://192.168.80.60:2380
root       8280   8235  0 23:44 pts/3    00:00:00 systemctl restart etcd
root       8286      1  1 23:44 ?        00:00:00 /opt/etcd/bin/etcd --name=etcd01 --data-dir=/var/lib/etcd/default.etcd --listen-peer-urls=https://192.168.80.40:2380 --listen-client-urls=https://192.168.80.40:2379,http://127.0.0.1:2379 --advertise-client-urls=https://192.168.80.40:2379 --initial-advertise-peer-urls=https://192.168.80.40:2380 --initial-cluster=etcd01=https://192.168.80.40:2380,etcd02=https://192.168.80.50:2380,etcd03=https://192.168.80.60:2380 --initial-cluster-token=etcd-cluster --initial-cluster-state=new --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --trusted-ca-file=/opt/etcd/ssl/ca.pem --peer-cert-file=/opt/etcd/ssl/server.pem --peer-key-file=/opt/etcd/ssl/server-key.pem --peer-trusted-ca-file=/opt/etcd/ssl/ca.pem
root       8351   8296  0 23:45 pts/0    00:00:00 grep --color=auto etcd

③ 另开一个master终端会发现etcd进程已经开启

//拷贝证书去其他节点
scp -r /opt/etcd/ root@192.168.80.50:/opt/
scp -r /opt/etcd/ root@192.168.80.60:/opt/
//启动脚本拷贝其他节点
scp /usr/lib/systemd/system/etcd.service root@192.168.80.50:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root@192.168.80.60:/usr/lib/systemd/system/

④ 拷贝证书去其他节点

⑤ node-01上操作

[root@node-01 ~]# vim /opt/etcd/cfg/etcd

#[Member]
ETCD_NAME="etcd02"											##修改为	etcd02
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.80.50:2380"			#修改为192.168.80.50
ETCD_LISTEN_CLIENT_URLS="https://192.168.80.50:2379"		#修改为192.168.80.50

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.80.50:2380"			#修改为192.168.80.50
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.80.50:2379"					#修改为192.168.80.50
ETCD_INITIAL_CLUSTER="etcd01=https://192.168.80.40:2380,etcd02=https://192.168.80.50:2380,etcd03=https://192.168.80.60:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

//启动etcd
[root@node-01 ~]# systemctl start etcd
[root@node-01 ~]# systemctl status etcd
[root@node-01 ~]# systemctl enable etcd.service

⑥ node-02上操作

[root@node-02 ~]# vim /opt/etcd/cfg/etcd

#[Member]
ETCD_NAME="etcd03"													##修改为	etcd03
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.80.60:2380"					#修改为192.168.80.60
ETCD_LISTEN_CLIENT_URLS="https://192.168.80.60:2379"				#修改为192.168.80.60

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.80.60:2380"		#修改为192.168.80.60
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.80.60:2379"				#修改为192.168.80.60
ETCD_INITIAL_CLUSTER="etcd01=https://192.168.80.40:2380,etcd02=https://192.168.80.50:2380,etcd03=https://192.168.80.60:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

//启动etcd
[root@node-02 ~]# systemctl start etcd
[root@node-02 ~]# systemctl status etcd
[root@node-02 ~]# systemctl enable etcd.service

⑦ 检查集群状态(Master上操作)


[root@192 bin]# ln -s /opt/etcd/bin/etcdctl /usr/local/bin/
[root@192 bin]# cd /opt/etcd/ssl/
[root@192 ssl]# etcdctl \\
--ca-file=ca.pem \\
--cert-file=server.pem \\
--key-file=server-key.pem \\
--endpoints="https://192.168.80.40:2379,https://192.168.80.50:2379,https://192.168.80.60:2379" cluster-health

member 1088ae9bbea2fa0b is healthy: got healthy result from https://192.168.80.50:2379
member c518ee873374223c is healthy: got healthy result from https://192.168.80.40:2379
member cce4239937be499b is healthy: got healthy result from https://192.168.80.60:2379
cluster is healthy
---------------------------------------------------------------------------------------
--ca-file:识别HTTPS端使用SSL证书文件
--cert-file:使用此SSL密钥文件标识HTTPS客户端
--key-file:使用此CA证书验证启用https的服务器的证书
--endpoints:集群中以逗号分隔的机器地址列表 
cluster-health:检查etcd集群的运行状况
---------------------------------------------------------------------------------------

⑧ 切换到etcd3版本进行查看集群节点状态和成员列表

[root@192 ssl]# export ETCDCTL_API=3		#v2和v3命令略有不同,etc2和etc3也是不兼容的,默认是v2版本
[root@192 ssl]# etcdctl --write-out=table endpoint status
+----------------+------------------+---------+---------+-----------+-----------+------------+
|    ENDPOINT    |        ID        | VERSION | DB SIZE | IS LEADER | RAFT TERM | RAFT INDEX |
+----------------+------------------+---------+---------+-----------+-----------+------------+
| 127.0.0.1:2379 | c518ee873374223c |  3.3.10 |   20 kB |      true |       461 |         12 |
+----------------+------------------+---------+---------+-----------+-----------+------------+
[root@192 ssl]# etcdctl --write-out=table member list
+------------------+---------+--------+----------------------------+----------------------------+
|        ID        | STATUS  |  NAME  |         PEER ADDRS         |        CLIENT ADDRS        |
+------------------+---------+--------+----------------------------+----------------------------+
| 1088ae9bbea2fa0b | started | etcd02 | https://192.168.80.50:2380 | https://192.168.80.50:2379 |
| c518ee873374223c | started | etcd01 | https://192.168.80.40:2380 | https://192.168.80.40:2379 |
| cce4239937be499b | started | etcd03 | https://192.168.80.60:2380 | https://192.168.80.60:2379 |
[root@192 ssl]# export ETCDCTL_API=2			#再切回v2版本

二、部署 docker 引擎

所有的node节点上安装docker

[root@node-01 ~]# cd /etc/yum.repos.d/
[root@node-01 yum.repos.d]# mv repo.bak/* ./
[root@node-01 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo  repo.bak
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  local.repo
[root@node-01 yum.repos.d]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@node-01 yum.repos.d]# yum-config-manager --add-repo 查看详情  

k8s

...tes云平台部署1.部署架构Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基... 查看详情

ansible+kubeasz二进制部署k8s高可用集群方案

K8S架构图基础环境配置类型服务器IP地址备注Ansible(2台)192.168.15.101/102K8S集群部署服务器,可以和Master节点在共用K8sMaster(2台)192.168.15.101/102K8S控制端,通过一个VIP做主备高可用Harbor(2台)192.168.15.103/104高可用镜像服务器Etcd(最少3台)19... 查看详情

linux企业运维——k8s高可用集群架构搭建详解(代码片段)

K8s高可用集群文章目录K8s高可用集群一、K8s高可用集群架构原理二、实验环境三、K8s高可用集群架构搭建3.1、负载均衡Loadbalancer部署—haproxy3.2、Docker部署3.3、K8s集群部署3.4、K8s集群添加worker节点四、集群高可用性能测试一、K8s... 查看详情

linux企业运维——k8s高可用集群架构搭建详解(代码片段)

K8s高可用集群文章目录K8s高可用集群一、K8s高可用集群架构原理二、实验环境三、K8s高可用集群架构搭建1、负载均衡Loadbalancer部署—haproxy2、Docker部署3、K8s集群部署4、K8s集群添加worker节点四、集群高可用性能测试一、K8s高可用... 查看详情

k8s集群架构的kubeadm部署dashboard和harbor仓库部署(代码片段)

K8S集群架构的kubeadm部署、dashboard和Harbor仓库部署一、kubeadm部署K8S集群架构实验准备工作:1.1环境准备1.2所有节点安装docker1.3master和node节点安装kubeadm,kubelet和kubectl1.4部署K8S集群二、dashboard部署2.1所有节点安装dashboard2.2... 查看详情

k8s集群架构的kubeadm部署dashboard和harbor仓库部署(代码片段)

K8S集群架构的kubeadm部署、dashboard和Harbor仓库部署一、kubeadm部署K8S集群架构实验准备工作:1.1环境准备1.2所有节点安装docker1.3master和node节点安装kubeadm,kubelet和kubectl1.4部署K8S集群二、dashboard部署2.1所有节点安装dashboard2.2... 查看详情

k8s多master集群二进制部署(代码片段)

k8s多Master集群二进制部署一、k8s多Master集群高可用方案1、高可用实现方案2、多Master高可用的搭建过程二、多master节点集群搭建(master02节点部署)三、负载均衡部署四、k8s的网站管理系统(DashboardUI)1、Dashboard介... 查看详情

部署k8s集群(k8s集群搭建详细实践版)

...供kubeadminit和kubeadmjoin,用于快速部署Kubernetes集群。二进制包从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。本实验 查看详情

部署k8s集群(k8s集群搭建详细实践版)

...供kubeadminit和kubeadmjoin,用于快速部署Kubernetes集群。二进制包从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。本实验 查看详情

k8s二进制集群部署--------单master集群(代码片段)

K8S二进制集群部署--------单master集群一、集群环境在上篇博客介绍过了,我的搭建部署也是在上一篇的基础上做的。二、部署master节点组件在Master上要部署以下三大核心组件:kube-apiserver:是集群的统一入口,各组件协调者,所... 查看详情

云原生kubernetes部署k8s集群架构(admin部署)(代码片段)

...s有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包minikube:一个用于快速搭建单节点kubenetes的工具kubeadm:一个用于快速搭建kubenetes集群的工具二进制包:从官网下载每个组件的二进制包,一次去安装,此... 查看详情

二进制部署k8s集群:部署kubelet(代码片段)

签发kubelet证书前面安装kube-apiserver的时候已经签发过证书,在前面签发证书的基础上签发kubelet证书,与前面签发的证书共用cat私钥文件与根配置文件ca-config.json。切换到192.168.0.102虚拟机。vi/opt/certs/kubelet-csr.jsonkubelet-csr.json文件... 查看详情

企业运维实战-k8s学习笔记17.k8s集群+prometheus监控部署基于prometheus实现k8s集群的hpa动态伸缩虚拟机部署prometheus监控(代码片段)

企业运维实战-k8s学习笔记17.k8s集群+Prometheus监控部署、基于prometheus实现k8s集群的hpa动态伸缩一、Prometheus简介二、Prometheus+k8s部署1.k8s集群部署Prometheus2.设定Prometheus监控应用nginx3.基于prometheus实现k8s集群的hpa动态伸缩三、虚... 查看详情

第二篇:二进制部署k8s集群进阶使用

二进制部署K8s集群进阶使用之第1节关于K8s证书二进制部署K8s集群进阶使用之第2节kubectl-陈述式资源管理二进制部署K8s集群进阶使用之第3节kubectl-声明式资源管理二进制部署K8s集群进阶使用之第4节pod控制器 查看详情

ansible自动化部署k8s集群

一、Ansible自动化部署K8S集群1.1Ansible介绍Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企... 查看详情

k8s之集群部署(二进制部署)(代码片段)

k8s集群分为三个部分。如下图所示1. master节点2. node节点3. etcd存储  部署master.com节点根据上图所示,master节点分为三个组件(apiserver、controller-manager、scheduler)apiserver:k8s集群的总入口,基于hppts通讯。所以要... 查看详情

k8s集群问题记录

k8s集群问题记录k8s学习方案问题解决思路主要学习路径:rancher(k8s)->rke->helm->kubectl->k8s常见命令总结:怎么解决简单就怎么解决例如rancher的安装使用helm安装有问题,官网有bug就使用docker的方式安装一样简便,只是个客... 查看详情