CentOs7.9安装部署kubernetes(K8S)
CentOs7.9安装部署kubernetes(K8S)
·
安装准备
两台机器(基于CentOS 7.9):
10.10.1.60 (K8S Master)
10.10.1.61 (K8S Worker)
安装K8S
升级内核
3.10内核在大规模集群具有不稳定性,所以需要升级内核 。(所有机器都要升级到一样)
#查看内核版本
$ uname -sr
#系统更新
$ yum update
#载入公钥
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#安装 ELRepo 最新版本
$ yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
#列出可以使用的 kernel 包版本
$ yum list available --disablerepo=* --enablerepo=elrepo-kernel
#安装指定的 kernel 版本:(已查看版本为准,采用lt长期支持版本)
$ yum install -y kernel-lt-5.4.214-1.el7.elrepo --enablerepo=elrepo-kernel
#查看系统可用内核
$ cat /boot/grub2/grub.cfg | grep menuentry
#设置开机从新内核启动
$ grub2-set-default "CentOS Linux (5.4.214-1.el7.elrepo.x86_64) 7 (Core)"
#查看内核启动项
$ grub2-editenv list
saved_entry=CentOS Linux (5.4.214-1.el7.elrepo.x86_64) 7 (Core)
#重启系统使内核生效:
$ reboot
#启动完成查看内核版本是否更新:
$ uname -r
5.4.188-1.el7.elrepo.x86_64
时间同步
k8s 要求节点中的时间必须精确一致,故这里安装chrony从网络同步时间。(所有机器都要同步到一样)
#安装
$ yum -y install chrony
#修改配置,如果有ACC时钟,以ACC时钟为主
$ vim /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
#启动和配置自启动
$ systemctl enable chronyd
$ systemctl start chronyd
k8s集群安装
其中sealos是一个k8s的部署工具。
#下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
$ wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos
$ chmod +x sealos
$ mv sealos /usr/bin
#下载离线资源包,将下载的kube1.22.8.tar.gz放到本地
https://download.csdn.net/download/lu_linux/86798774
#安装一个单master的kubernetes集群
$ sealos init --passwd 123456 --master 10.10.1.60 --node 10.10.1.61 --pkg-url kube1.22.8.tar.gz --version v1.22.8
#或者
$ sealos init --master 10.10.1.60 --node 10.10.1.61 --pkg-url kube1.22.8.tar.gz --pk /root/sealos/id_rsa-ansible --version v1.22.8 #加了秘钥就不需要--passwd 密码123456
# 安装一个三master的kubernetes集群
$ sealos init --passwd '123456' \
--master 10.10.1.44 --master 10.10.1.45 --master 10.10.1.46 \
--node 10.10.1.40 --node=10.10.1.42 --node=10.10.1.43 \
--pkg-url /root/kube1.22.8.tar.gz \
--version v1.22.8
注意:
由于测试资源限制只有两台设备,这里安装的是单master集群,一个作为master,一个作为worker节点。
安装成功可以看到如下日志:
...
17:53:13 [INFO] [ssh.go:65] [10.10.1.61:22] This node has joined the cluster:
17:53:13 [INFO] [ssh.go:65] [10.10.1.61:22] * Certificate signing request was sent to apiserver and a response was received.
17:53:13 [INFO] [ssh.go:65] [10.10.1.61:22] * The Kubelet was informed of the new secure connection details.
17:53:13 [INFO] [ssh.go:65] [10.10.1.61:22]
17:53:13 [INFO] [ssh.go:65] [10.10.1.61:22] Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
17:53:13 [INFO] [ssh.go:65] [10.10.1.61:22]
17:53:13 [INFO] [ssh.go:27] [ssh][10.10.1.61:22] mkdir -p /etc/kubernetes/manifests
17:53:13 [DEBG] [ssh.go:39] [ssh][10.10.1.61:22]command result is:
17:53:13 [INFO] [scp.go:174] [ssh][10.10.1.61:22]transfer total size is: 0MB
17:53:13 [DEBG] [ssh.go:72] [10.10.1.61:22] rm -rf /root/kube
17:53:14 [DEBG] [print.go:35] ==>SendPackage==>KubeadmConfigInstall==>InstallMaster0==>JoinMasters==>JoinNodes
17:53:14 [INFO] [print.go:39] sealos install success.
17:53:14 [INFO] [init.go:96]
___ ___ ___ ___ ___ ___
/\ \ /\ \ /\ \ /\__\ /\ \ /\ \
/::\ \ /::\ \ /::\ \ /:/ / /::\ \ /::\ \
/:/\ \ \ /:/\:\ \ /:/\:\ \ /:/ / /:/\:\ \ /:/\ \ \
_\:\~\ \ \ /::\~\:\ \ /::\~\:\ \ /:/ / /:/ \:\ \ _\:\~\ \ \
/\ \:\ \ \__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/__/ /:/__/ \:\__\ /\ \:\ \ \__\
\:\ \:\ \/__/ \:\~\:\ \/__/ \/__\:\/:/ / \:\ \ \:\ \ /:/ / \:\ \:\ \/__/
\:\ \:\__\ \:\ \:\__\ \::/ / \:\ \ \:\ /:/ / \:\ \:\__\
\:\/:/ / \:\ \/__/ /:/ / \:\ \ \:\/:/ / \:\/:/ /
\::/ / \:\__\ /:/ / \:\__\ \::/ / \::/ /
\/__/ \/__/ \/__/ \/__/ \/__/ \/__/
官方文档:sealyun.com
项目地址:github.com/fanux/sealos
QQ群 :98488045
常见问题:sealyun.com/faq
在master运行“kubectl get nodes”可以看到集群节点。
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master1.dev Ready control-plane,master 107s v1.22.8
work1.dev Ready <none> 79s v1.22.8
更多推荐
已为社区贡献1条内容
所有评论(0)