k8s基础环境配置二

  • Post author:
  • Post category:其他



目录


一,安装docker服务


1,安装docker-ce


2,配置docker镜像加速器和驱动


二,安装软件包


安装初始化k8s需要的软件包


kubeadm初始化k8s集群


安装kubernetes网络组件-calico


测试k8s集群中部署tomcat服务。


一,安装docker服务

1,安装docker-ce

Master:yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io  -y

Master:systemctl start docker && systemctl enable docker.service

Node1:yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io  -y

Node1:systemctl start docker && systemctl enable docker.service

Node2:yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io  -y

Node2:systemctl start docker && systemctl enable docker.service

2,配置docker镜像加速器和驱动

Vim /etc/docker/daemon.json

{

“registry-mirrors”:[“https://rsbud4vc.mirror.aliyuncs.com”,”https://registry.docker-cn.com”,”https://docker.mirrors.ustc.edu.cn”,”https://dockerhub.azk8s.cn”,”http://hub-mirror.c.163.com”,”http://qtid6917.mirror.aliyuncs.com”, “https://rncxm540.mirror.aliyuncs.com”],

“exec-opts”: [“native.cgroupdriver=systemd”]

}

[root@hd1.com ~]# systemctl daemon-reload  && systemctl restart docker

[root@hd1.com ~]# systemctl status docker

Node1:同上

Node2:同上

二,安装软件包

安装初始化k8s需要的软件包

[root@hd1.com ~]# yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6

[root@hd1.com ~]# systemctl enable kubelet && systemctl start kubelet

[root@hd1.com]# systemctl status kubelet

查看到的状态可能是未开启,这是正常的等k8s组件起来这个kubelet就正常了。

Node1:同上操作

Node2:同上操作

kubeadm初始化k8s集群

把初始化k8s集群需要的离线镜像包上传到各个节点,手动解压:

将k8simage-1-20-6.tar.gz上传到第一个节点,然后传给另外两个节点。

在三台主机上分别进行导入镜像:

[root@hd1.com ~]# docker load -i k8simage-1-20-6.tar.gz

[root@hd2.com ~]# docker load -i k8simage-1-20-6.tar.gz

[root@hd3.com ~]# docker load -i k8simage-1-20-6.tar.gz

使用kubeadm初始化k8s集群:只在master上操作。

[root@hd1.com ~]# kubeadm init –kubernetes-version=1.20.6  –apiserver-advertise-address=192.168.1.11  –image-repository registry.aliyuncs.com/google_containers  –pod-network-cidr=10.244.0.0/16 –ignore-preflight-errors=SystemVerification

可以看到生成一个kubeadm jion的长字符串,需要记住生成的字符串。

#配置kubectl的配置文件config,相当于对kubectl进行授权,这样kubectl命令可以使用这个证书对k8s集群进行管理

[root@hd1.com ~]# mkdir -p $HOME/.kube

[root@hd1.com ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@hd1.com ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

[root@hd1.com ~]# kubectl get nodes

会看到已经创建的集群,但是状态是NotReady因为还没有安装网络插件。扩容k8s集群,添加第一个工作节点。

将在master上生成的长字符串复制到另外两台主机上,加入到集群中充当工作节点。

在次进行查看:kubectl get nodes则可以看到,这两台主机已经加入到该集群中。

将集群的状态改为Ready需要在master上做:

[root@hd1.com ~]# kubectl label node hd2.com node-role.kubernetes.io/worker=worker

[root@hd1.com ~]# kubectl label node hd3.com node-role.kubernetes.io/worker=worker

再次进行查看则会看到状态已经改变。

安装kubernetes网络组件-calico

首先上传calico.yaml文件到hd1.com上,然后操作:

[root@hd1.com ~]# kubectl apply -f  calico.yaml

然后查看:[root@hd1.com ~]# kubectl apply -f  calico.yaml

全部变为running和1时,则证明已经启动完毕。

测试是否可以正常访问网络:

将busybox-1-28.tar.gz上传到hd2.com,hd3.com然后进行导入镜像:

[root@hd2.com ~]# docker load -i busybox-1-28.tar.gz

[root@hd3.com ~]# docker load -i busybox-1-28.tar.gz

[root@hd1.com ~]# kubectl run busybox –image busybox:1.28 –restart=Never –rm -it busybox — sh

登录之后ping

www.baidu.com

可以ping通说明可以连接外网络。

测试k8s集群中部署tomcat服务。

将tomcat.tar.gz上传到hd2.com,hd3.com,手动解压

[root@hd2.com ~]# docker load -i tomcat.tar.gz

[root@hd3.com ~]# docker load -i tomcat.tar.gz

上传yaml文件到hd1.com上:

tomcat.yaml      tomcat-service.yaml

[root@hd1.com ~]# kubectl apply -f tomcat.yaml

查看pod:

Kubectl get pods

可以看到已经创建的pod并且状态还running

进行查看ip地址:kubectl get pods -o wide || grep 10

[root@hd1.com ~]# kubectl apply -f tomcat-service.yaml

[root@hd1.com ~]# kubectl get svc

NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE

kubernetes   ClusterIP   10.255.0.1       <none>        443/TCP          158m

tomcat       NodePort    10.255.227.179   <none>        8080:30080/TCP   19m

然后进行访问web界面:192.168.1.11(或者另外两个节点的ip都可以):30080

即可看到tomcat的界面就算成功了。



版权声明:本文为WFL_BOKE原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。