如何用二进制包部署Kubernetes集群?-创新互联

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

创新互联公司提供高防服务器租用、云服务器、香港服务器、成都棕树机房

架构总规划图

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

环境准备

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

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

组件介绍

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

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

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

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

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

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

chmod 777 cfssl cfssl-certinfo cfssljson

定义ca证书,生成证书

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

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

证书签名

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

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

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

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

脚本配置完成,重新加载,开启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

如何用二进制包部署Kubernetes集群?
启动并设置开启自启

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集群?

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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

分享标题:如何用二进制包部署Kubernetes集群?-创新互联
当前链接:https://www.cdcxhl.com/article22/dpescc.html

成都网站建设公司_创新互联,为您提供微信公众号标签优化做网站网站设计搜索引擎优化响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发