千家信息网

Kubernetes群集之:二进制部署单etcd,多节点集群

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,Kubernetes集群部署1.官方提供的三种部署方式2.Kubernetes平台环境规划3.自签SSL证书4.Etcd数据库群集部署5.Node安装Docker6.Flannel容器集群网络部署7.
千家信息网最后更新 2026年11月04日Kubernetes群集之:二进制部署单etcd,多节点集群

Kubernetes集群部署

1.官方提供的三种部署方式
2.Kubernetes平台环境规划
3.自签SSL证书
4.Etcd数据库群集部署
5.Node安装Docker
6.Flannel容器集群网络部署
7.部署Master组件
8.部署Node组件
9.部署一个测试示例
10.部署Web UI(Dashboard)
11.部署集群内部DNS解析服务(CoreDNS)

官方提供的三种部署方式:

minikube:

Minikube是一个工具,可以在本地快速运行单点的Kubernetes,仅用于尝试Kubernetes或日常开发的用户使用
部署地址:https://kubernetes.io/docs/setup/minikube/

kubeadm:

Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群
部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

二进制包:

推荐,从官方下载发行版的二进制包,手动部署每个组件包,组成Kubernetes集群
下载地址:https://github.com/kubernetes/kubernetes/releases


要解决服务发现的问题,需要下面三大支柱,缺一不可

1.一个强一致性,高可用的服务存储目录

基于Ralf算法的etcd天生就是这样一个强一致性,高可用的服务存储目录

2.一秒注册服务和健康服务健康状况的机制

用户可以在etcdz中注册服务,并且对注册的服务配置key TTL,定时保持服务的心跳以达到监控健康状态的效果

3.一种查找和连接服务的机制

通过在etcd指定的主题下注册的服务业能在对应的主题下查到,为了确保连接,我们可以在每个服务机器上都部署一个proxy模式的etcd,这样就可以确保访问etcd集群的服务都能够互相连接



Demo:二进制部署多节点,单etcd群集

环境准备:

相关软件包及文档:

链接:https://pan.baidu.com/s/1nn67GDs8BD6sQTeKH4Ii4w
提取码:vx7m

Mester:7-3:192.168.18.128 kube-apiserver kube-controller-manager kube-scheduler etcd

Node1:7-4:192.168.18.148 kubelet kube-proxy docekr flannel etcd

Node2:7-5:192.168.18.145 kubelet kube-proxy docekr flannel etcd

Mester7-3:
[root@master ~]# mkdir k8s[root@master ~]# cd k8s/[root@master k8s]# mkdir etcd-cert[root@master k8s]# mv etcd-cert.sh etcd-cert[root@master k8s]# lsetcd-cert  etcd.sh[root@master k8s]# vim cfssl.shcurl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfsslcurl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljsoncurl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfochmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo[root@master k8s]# bash cfssl.sh[root@master k8s]# ls /usr/local/bin/cfssl  cfssl-certinfo  cfssljson`定义CA证书`cat > ca-config.json < ca-csr.json < server-csr.json <
上传以下三个压缩包进行解压:

[root@master etcd-cert]# lsca-config.json  etcd-cert.sh                          server-csr.jsonca.csr          etcd-v3.3.10-linux-amd64.tar.gz       server-key.pemca-csr.json     flannel-v0.10.0-linux-amd64.tar.gz    server.pemca-key.pem      kubernetes-server-linux-amd64.tar.gzca.pem          server.csr[root@master etcd-cert]# mv *.tar.gz ../[root@master etcd-cert]# cd ../[root@master k8s]# lscfssl.sh   etcd.sh                          flannel-v0.10.0-linux-amd64.tar.gzetcd-cert  etcd-v3.3.10-linux-amd64.tar.gz  kubernetes-server-linux-amd64.tar.gz[root@master k8s]# tar zxvf etcd-v3.3.10-linux-amd64.tar.gz[root@master k8s]# ls etcd-v3.3.10-linux-amd64Documentation  etcd  etcdctl  README-etcdctl.md  README.md  READMEv2-etcdctl.md[root@master k8s]# mkdir /opt/etcd/{cfg,bin,ssl} -p[root@master k8s]# mv etcd-v3.3.10-linux-amd64/etcd etcd-v3.3.10-linux-amd64/etcdctl /opt/etcd/bin/`证书拷贝`[root@master k8s]# cp etcd-cert/*.pem /opt/etcd/ssl/`进入卡住状态等待其他节点加入`[root@master k8s]# bash etcd.sh etcd01 192.168.18.128 etcd02=https://192.168.18.148:2380,etcd03=https://192.168.18.145:2380Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
此时新打开一个7-3的远程连接终端:
[root@master ~]# ps -ef | grep etcdroot       3479   1780  0 11:48 pts/0    00:00:00 bash etcd.sh etcd01 192.168.18.128 etcd02=https://192.168.195.148:2380,etcd03=https://192.168.195.145:2380root       3530   3479  0 11:48 pts/0    00:00:00 systemctl restart etcdroot       3540      1  1 11:48 ?        00:00:00 /opt/etcd/bin/etcd --name=etcd01 --data-dir=/var/lib/etcd/default.etcd --listen-peer-urls=https://192.168.18.128:2380 --listen-client-urls=https://192.168.18.128:2379,http://127.0.0.1:2379 --advertise-client-urls=https://192.168.18.128:2379 --initial-advertise-peer-urls=https://192.168.18.128:2380 --initial-cluster=etcd01=https://192.168.18.128:2380,etcd02=https://192.168.195.148:2380,etcd03=https://192.168.195.145: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 --peer-cert-file=/opt/etcd/ssl/server.pem --peer-key-file=/opt/etcd/ssl/server-key.pem --trusted-ca-file=/opt/etcd/ssl/ca.pem --peer-trusted-ca-file=/opt/etcd/ssl/ca.pemroot       3623   3562  0 11:49 pts/1    00:00:00 grep --color=auto etcd

`拷贝证书去其他节点`[root@master k8s]# scp -r /opt/etcd/ root@192.168.18.148:/opt/The authenticity of host '192.168.18.148 (192.168.18.148)' can't be established.ECDSA key fingerprint is SHA256:mTT+FEtzAu4X3D5srZlz93S3gye8MzbqVZFDzfJd4Gk.ECDSA key fingerprint is MD5:fa:5a:88:23:49:60:9b:b8:7e:4b:14:4b:3f:cd:96:a0.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.18.148' (ECDSA) to the list of known hosts.root@192.168.18.148's password:etcd                                                       100%  518   426.8KB/s   00:00etcd                                                       100%   18MB 105.0MB/s   00:00etcdctl                                                    100%   15MB 108.2MB/s   00:00ca-key.pem                                                 100% 1679     1.4MB/s   00:00ca.pem                                                     100% 1265   396.1KB/s   00:00server-key.pem                                             100% 1675     1.0MB/s   00:00server.pem                                                 100% 1338   525.6KB/s   00:00[root@master k8s]# scp -r /opt/etcd/ root@192.168.18.145:/opt/The authenticity of host '192.168.18.145 (192.168.18.145)' can't be established.ECDSA key fingerprint is SHA256:mTT+FEtzAu4X3D5srZlz93S3gye8MzbqVZFDzfJd4Gk.ECDSA key fingerprint is MD5:fa:5a:88:23:49:60:9b:b8:7e:4b:14:4b:3f:cd:96:a0.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.18.145' (ECDSA) to the list of known hosts.root@192.168.18.145's password:etcd                                                       100%  518   816.5KB/s   00:00etcd                                                       100%   18MB  87.4MB/s   00:00etcdctl                                                    100%   15MB 108.6MB/s   00:00ca-key.pem                                                 100% 1679     1.3MB/s   00:00ca.pem                                                     100% 1265   411.8KB/s   00:00server-key.pem                                             100% 1675     1.4MB/s   00:00server.pem                                                 100% 1338   639.5KB/s   00:00`启动脚本拷贝其他节点`[root@master k8s]# scp /usr/lib/systemd/system/etcd.service root@192.168.18.148:/usr/lib/systemd/system/root@192.168.18.148's password:etcd.service                                               100%  923   283.4KB/s   00:00[root@master k8s]# scp /usr/lib/systemd/system/etcd.service root@192.168.18.145:/usr/lib/systemd/system/root@192.168.18.145's password:etcd.service                                               100%  923   347.7KB/s   00:00
Node1:7-4
`修改`[root@node1 ~]# systemctl stop firewalld.service[root@node1 ~]# setenforce 0[root@node1 ~]# vim /opt/etcd/cfg/etcd#[Member]ETCD_NAME="etcd02"ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="https://192.168.18.148:2380"ETCD_LISTEN_CLIENT_URLS="https://192.168.18.148:2379"#[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.18.148:2380"ETCD_ADVERTISE_CLIENT_URLS="https://192.168.18.148:2379"ETCD_INITIAL_CLUSTER="etcd01=https://192.168.18.128:2380,etcd02=https://192.168.18.148:2380,etcd03=https://192.168.18.145:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"ETCD_INITIAL_CLUSTER_STATE="new"[root@node1 ~]# systemctl start etcd[root@node1 ~]# systemctl status etcd● etcd.service - Etcd Server   Loaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; vendor preset: disabled)   Active: active (running) since 三 2020-01-15 17:53:24 CST; 5s ago#状态为Active
Node2:7-5
`修改`[root@node2 ~]# systemctl stop firewalld.service[root@node2 ~]# setenforce 0[root@node2 ~]# vim /opt/etcd/cfg/etcd#[Member]ETCD_NAME="etcd03"ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="https://192.168.18.145:2380"ETCD_LISTEN_CLIENT_URLS="https://192.168.18.145:2379"#[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.18.145:2380"ETCD_ADVERTISE_CLIENT_URLS="https://192.168.18.145:2379"ETCD_INITIAL_CLUSTER="etcd01=https://192.168.18.128:2380,etcd02=https://192.168.18.148:2380,etcd03=https://192.168.18.145:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"ETCD_INITIAL_CLUSTER_STATE="new"[root@node2 ~]# systemctl start etcd[root@node2 ~]# systemctl status etcd● etcd.service - Etcd Server   Loaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; vendor preset: disabled)   Active: active (running) since 三 2020-01-15 17:55:24 CST; 5s ago #状态为Active

群集状态验证:

`回到7-3上输入以下命令:`[root@master k8s]# cd etcd-cert/[root@master etcd-cert]# /opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://192.168.18.128:2379,https://192.168.18.148:2379,https://192.168.18.145:2379" cluster-healthmember 9104d301e3b6da41 is healthy: got healthy result from https://192.168.18.148:2379member 92947d71c72a884e is healthy: got healthy result from https://192.168.18.145:2379member b2a6d67e1bc8054b is healthy: got healthy result from https://192.168.18.128:2379cluster is healthy`状态为healthy健康`
服务 集群 状态 证书 节点 健康 二进制 地址 官方 拷贝 组件 一致 一致性 主题 工具 方式 机制 环境 用户 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 厦门中拓互联网络科技有限公司 互联网女皇 腾讯科技 菲比寻常互联网科技 无锡溥仪互联网科技有限公司 北京大学互联网科技怎么样 互联网科技有哪些公司 南平创想时代互联网科技有限公司 互联网5g黑科技有哪些 华夏恒生互联网科技013171 为客找房互联网科技公司怎么样 互联网与数字科技关系 福建互联网展示科技馆设计 互联网高科技行业有哪些企业 长沙渺峰互联网科技有限公司 同城互联网络科技 米泉互联网科技专业怎么样 绵阳真晨互联网科技有限公司 恒生互联网科技趋势 互联网 科技节活动 微视频大赛 有格互联网科技 远信互联网科技 南京欣网互联网科技 碳银互联网科技有限公司 华服互联网科技官网 移动互联网年度科技创新 西安小鹰速贷互联网科技有限公司 珠海东科互联网科技有限公司 米泉互联网科技专业怎么样 互联网时代高科技布局
0