Kubernetes(k8s)之k8s的部署

Posted Tuki_a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes(k8s)之k8s的部署相关的知识,希望对你有一定的参考价值。

前提准备

我使用了四台虚拟机
server1		172.25.38.1 	harbor仓库端
server2		172.25.38.2 	k8s的master端
server3 	172.25.38.3 	k8s的node端
server4 	172.25.38.4 	k8s的node端
四台虚拟机均部署好了docker

关于harbor仓库和docker的部署可以参照之前的文章
docker部署:https://blog.csdn.net/m0_55005311/article/details/118964794
harbor仓库:https://blog.csdn.net/m0_55005311/article/details/118958310

部署k8s

server2、3、4均需做的准备工作

关闭swap分区

swapoff -a
vim /etc/fstab #注释掉/etc/fstab文件中的swap定义


设置docker网桥

cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

sysctl --system
docker info		#没有warning即可



告诉仓库地址并设置systemd

[root@server2 ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://reg.westos.org"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}


重启让设置生效

systemctl daemon-reload
systemctl restart docker 	#重启
docker info 				#没有问题


需要kubeadm-1.21.3.tar.gz的安装包,我提前下载的,直接解压安装并启动

[root@server2 ~]# ls
anaconda-ks.cfg  kubeadm-1.21.3.tar.gz
[root@server2 ~]# tar zxf kubeadm-1.21.3.tar.gz
[root@server2 ~]# cd packages/
[root@server2 packages]# yum install -y *
[root@server2 packages]# systemctl enable --now kubelet.service


查看默认配置信息

仓库端上传镜像

先新建一个项目(我之前已经建立过了)

上传提前打包好的镜像

docker load -i k8s-1.21.3.tar
docker images | grep ^reg.westos.org/k8s #有7个相关镜像
docker images | grep ^reg.westos.org/k8s | awk '{system("docker push "$1":"$2"")}' #批量上传镜像到reg.westos.org/k8s

如下是需要的镜像

master端初始化

配置环境变量与kubectl补齐

# 环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf 
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
# 补齐
echo "source <(kubectl completion bash)" >> ~/.bashrc


执行下面的命令初始化

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s

出现了如下错误,是因为cpu至少需要两个,我只给了一个

关闭虚拟机,增加一个核心数,重启虚拟机

再进行初始化,成功!按提示执行下图命令

在master端安装网络组件

在控制节点安装flannel组件,若无flannel镜像可直接通过github拉取,像下图运行正常即可

添加后端节点

在初始化时,最下面有如图的提示,直接在想增加的节点端执行该命令即可(注意token的时效性只有24小时)

在master端查看节点添加成功并且处于ready状态!

[root@server2 ~]# kubectl get nodes
NAME      STATUS   ROLES                  AGE    VERSION
server2   Ready    control-plane,master   38m    v1.21.3
server3   Ready    <none>                 113s   v1.21.3
server4   Ready    <none>                 49s    v1.21.3

至此,部署完成!

以上是关于Kubernetes(k8s)之k8s的部署的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes(k8s)之部署让k8s图形化的Dashboard

云原生之kubernetes实战使用Sealos部署k8s集群环境

云原生之kubernetes实战在k8s集群环境下部署Tomcat应用

云原生之kubernetes实战在k8s环境下部署Laverna笔记工具

云原生之kubernetes实战在k8s环境下部署Leanote蚂蚁笔记工具

云原生之kubernetes实战在k8s环境下部署Heimdall导航页