Kubernetes集群的部署方式及详细步骤(3)

②[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap   #在初始化时加入--ignore选项

最后通过[root@master ~]# docker image ls 查看镜像都拉取完了

Kubernetes集群的部署方式及详细步骤

其中k8s.gcr.io/pause就是基础架构容器,可以不用启动,其他容器可以将它当成模板进行网络、存储卷复制。

特别注意:

其中有两个附件:CoreDNS和kube-proxy

CoreDNS:CoreDNS已经经历过三个版本:sky-dns()----->kube-dns(1.3版本)----->CoreDNS(1.11版本)

kube-proxy:作为附件运行自托管与k8s之上,来帮忙负责生成service资源相关的iptables或者ipvs规则,在1.11版本默认使用ipvs。

6、创建kube目录,添加kubectl配置

建议用普通用户运行以下三个命令:

mkdir -p $HOME/.kube;

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config;

sudo chown $(id -u):$(id -g) $HOME/.kube/config

因不是生产环境,所以此处直接用root权限执行,第三步更改属主和属组也不需要操作

还未执行以上三个命令时,查看nodes节点是会报以下错误:

执行完之后,再查看nodes节点时,结果如下:

Kubernetes集群的部署方式及详细步骤

可以看出master的状态是未就绪(NotReady),之所以是这种状态是因为还缺少一个附件flannel或者Calico,没有网络各Pod是无法通信的。

也可以通过检查组件的健康状态

[root@master ~]# kubectl get componentstatus      #componentstatus可简写为cs

Kubernetes集群的部署方式及详细步骤

7、添加网络组件(flannel)

组件flannel可以通过https://github.com/coreos/flannel中获取,此处也有介绍怎么安装

Kubernetes集群的部署方式及详细步骤

如果Kubernetes版本是1.7以上执行这行命令即可,在线自动获取部署清单,然后基于此清单下载镜像启动并部署

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Kubernetes集群的部署方式及详细步骤

看到很多东西被创建是还不够的,还需要查看flannel是否处于正常启动并运行的状态,才算正在的部署完成

[root@node1 ~]# docker image ls           #查看flannel镜像是否有被拉取下来

可以看到flannel镜像已经下载下来了

Kubernetes集群的部署方式及详细步骤

注意:从这步开始我用的版本是v1.11.2,由于代理到期,导致之前的镜像下载不到重新换了途径下载,所以你们kubeadm init初始化时记得对应上版本。

[root@node1 ~]# kubectl get pods --all-namespaces       #查看所有名称空间的pod,同时可以看到flannel已经正常启动

[root@node1 ~]# kubectl get pods -n kube-system          #查看名称空间为kube-system的pod

Kubernetes集群的部署方式及详细步骤

[root@localhost ~]# kubectl get ns    #查看有哪些名称空间

系统级别的Pod都在名称空间kube-system中

这样我们的master节点就部署好了

8、

(3)node节点环境的安装

[root@node01 ~]# rpm --import rpm-package-key.gpg

[root@node01 ~]# yum install -y docker-ce kubelet kubeadm

[root@master ~]# scp /usr/lib/systemd/system/docker.service node01:/usr/lib/systemd/system/docker.service

[root@master ~]# scp /etc/sysconfig/kubelet node01://etc/sysconfig/

[root@node01 ~]# systemctl daemon-reload

[root@node01 ~]# systemctl start docker

[root@node01 ~]# systemctl enble docker kubelet

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2e0d76c82bc8036f470960090f5ae4cb.html