目录
一,安装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的界面就算成功了。