千家信息网

如何用二进制包部署Kubernetes集群?

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,如何用二进制包部署Kubernetes集群?针对这个问题,今天小编总结这篇有关Kubernetes集群部署的文章,希望帮助更多想解决这个问题的同学找到更加简单易行的办法。架构总规划图环境准备三台主机,
千家信息网最后更新 2025年12月02日如何用二进制包部署Kubernetes集群?

如何用二进制包部署Kubernetes集群?针对这个问题,今天小编总结这篇有关Kubernetes集群部署的文章,希望帮助更多想解决这个问题的同学找到更加简单易行的办法。

架构总规划图

环境准备

三台主机,一台作为master节点,二台作为node节点。

其中master节点需要安装以下组件
kube-apiserver、kube-controller-manager、kube-scheduler、etcd
node节点需要安装以下组件
kubelet、kube-proxy、docker、flannel、etcd

组件介绍

Flanner:Flannel是针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。但在默认的Docker配置中,每个Node的Docker服务会分别负责所在节点容器的IP分配。Node内部得容器之间可以相互访问,但是跨主机(Node)网络相互间是不能通信。Flannel设计目的就是为集群中所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得"同属一个内网"且"不重复的"IP地址,并让属于不同节点上的容器能够直接通过内网IP通信。

部署流程

从官方网站上下载二进制包

部署etcd存储

etcd存储在master节点和node节点都需要部署,首先在master节点部署

编辑脚本下载官方cfssl包

vim cfssl.sh
curl -L https:#pkg.cfssl.org/ R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L https:#pkg.cfssl.org/ R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L https:#pkg.cfssl.org/ R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo

chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo

执行脚本

bash cfssl.sh

此时cd /usr/local/bin/目录生成三个文件

cfssl:是生成证书工具
cfssljson:通过传入json文件生成证书
cfssl-certinfo:是查看证书信息

给这三个文件添加执行权限

chmod 777 cfssl cfssl-certinfo cfssljson

定义ca证书,生成证书

构建好二个脚本,生成证书
第一个脚本 vim etcd-cert.sh
定义ca证书

证书签名

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server

上述命令生成所需证书

第二个脚本vim etcd.sh


脚本配置完成,重新加载,开启etcd以及设置开机自启动,关闭防火墙,增强性安全功能

systemctl daemon-reload
systemctl enable etcd
systemctl restart etcd
systemctl stop firewalld.service
setenforce 0

创建k8s目录,将二个脚本移动至目录下

mkdir k8s
cd k8s/
mkdir etcd-cert
mv etcd-cert.sh etcd-cert

解压ETCD 二进制包

tar zxvf etcd-v3.3.10-linux-amd64.tar.gz

配置文件,命令文件,证书

mkdir /opt/etcd/{cfg,bin,ssl} -p
mv etcd-v3.3.10-linux-amd64/etcd etcd-v3.3.10-linux-amd64/etcdctl /opt/etcd/bin/

证书拷贝

cp etcd-cert/.pem /opt/etcd/ssl/

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

bash etcd.sh etcd01 192.168.142.129 etcd02=https:/ /192.168.142.130:2380,etcd03=https:/ /192.168.149.131:2380

使用另外一个会话打开,会发现etcd进程已经开启
ps -ef | grep etcd

拷贝证书去其他节点

scp -r /opt/etcd/ root@192.168.142.130:/opt/
scp -r /opt/etcd/ root@192.168.142.131:/opt/

启动脚本拷贝其他节点

scp /usr/lib/systemd/system/etcd.service root@192.168.142.130:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root@192.168.142.131:/usr/lib/systemd/system/

在node01节点的操作

修改etcd文件

vim /opt/etcd/cfg/etcd

修改名称和地址

[Member]
ETCD_NAME="etcd02"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https:/ /192.168.142.130:2380"
ETCD_LISTEN_CLIENT_URLS="https:/ /192.168.142.130:2379"

[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https:/ /192.168.142.130:2380"
ETCD_ADVERTISE_CLIENT_URLS="https:/ /192.168.142.130:2379"
ETCD_INITIAL_CLUSTER="etcd01=http//192.168.142.129:2380,etcd02=https:/ /192.168.14.130:2380,etcd03=https:/ /192.168.142.131:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

启动服务

systemctl start etcd
systemctl status etcd

3.在node02节点的操作

修改etcd文件

vim /opt/etcd/cfg/etcd

修改名称和地址

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

[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https:#192.168.142.131:2380"
ETCD_ADVERTISE_CLIENT_URLS="https:#192.168.142.131:2379"
ETCD_INITIAL_CLUSTER="etcd01=https:#192.168.142.129:2380,etcd02=https:#192.168.142.130:2380,etcd03=https:#192.168.142.131:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

启动服务

systemctl start etcd

部署 flannel

写入分配的子网段到ETCD中,供flannel使用

/opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https:/ /192.168.149.131:2379,h ttps://192.168.220.140:2379,https:/ /192.168.220.136:2379 set /core os.com /network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

拷贝软件包到所有的 node 节点

scp flannel-v0.10.0-linux-amd64.tar.gz root@192.168.220.140:/root
scp flannel-v0.10.0-linux-amd64.tar.gz root@192.168.220.136:/root

所有 node 节点将压缩包解压:

tar zvxf flannel-v0.10.0-linux-amd64.tar.gz

在node节点上,先创建k8s工作工作目录:

mkdir /opt/kubernetes/{cfg,bin,ssl} -p
mv mk-docker-opts.sh flanneld /opt/kubernetes/bin/*

创建flanner脚本 vim flannel.sh


启动并设置开启自启

systemctl daemon-reload
systemctl enable flanneld
systemctl restart flanneld

启动flanner网络功能

bash flannel.sh https:// 19 2.1 68.220.131:2379,https:/ /192.168.220.140:2379,http s://192.168.220.136:2379

at /run/flannel/subnet.env
DOCKER_OPT_BIP="--bip=172.17.53.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=false"
DOCKER_OPT_MTU="--mtu=1450"

DOCKER_NETWORK_OPTIONS=" --bip=172.17.53.1/24 --ip-masq=false --mtu=1450"

重启docker

systemctl daemon-reload
systemctl restart docker

查看flanner网络

看完上述内容,你们掌握用二进制包部署Kubernetes集群的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

节点 证书 脚本 文件 生成 集群 地址 容器 二进制 拷贝 目录 网络 服务 不同 主机 功能 更多 组件 规划 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 奉贤区企业软件开发哪家好 武汉好未来网络技术有限公司 计算机网络技术能国考吗 不能用于城域网的网络技术是 想学网络安全应该先学什么 苹果手机怎么查看云数据库 网络技术中心可以做什么志愿 数据库多表查询不太理解 大学数据库技术学什么 网络技术应用的选择填空题 邦网络安全专业 印度计算机网络技术 股票软件开发潘玉华 弧齿锥齿轮软件开发 手机软件开发培训需要学习什么 网络安全法宣传周展板 软件开发和软件实施那个累 青岛系统软件开发流程 服务器怎么设置ip桌面 网络安全的基本要素 日本学术期刊数据库 原神怎么登录其他服务器 微创网络技术股份有限公司新闻 工业网络安全隔离网关SAP 中天精装招聘软件开发 网络安全与管理第01 火车头v9发布数据库 天天斗牛软件开发公司 基础设施网络安全保护基本要求 做软件开发怎么称呼同事
0