K8S云平台部署过程说明( 五 )


文章插图
 
可以看到,集群中已经有3台master节点了 。
4.加入node节点
在woker1和worker2执行,向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:这个在master init初始化时会有提示,更换为自己的IP和token 。

K8S云平台部署过程说明

文章插图
 

K8S云平台部署过程说明

文章插图
 
到master节点查看node状态,都显示ready:
K8S云平台部署过程说明

文章插图
 

K8S云平台部署过程说明

文章插图
 
5.配置Ingress-nginx
> > > > 镜像上传
把nginx-ingress.tar上传到各个master上,路径自己能找到就行(如果下面的mandatory.yaml里配置指定master,这里可以只放到指定的master就可以),导入镜像:
K8S云平台部署过程说明

文章插图
 

K8S云平台部署过程说明

文章插图
 
> > > > YAML修改
1)编辑添加212行,表示使用主机网络 。
hostNetwork: true
K8S云平台部署过程说明

文章插图
 
关于上面yaml文件中写入的“hostNetwork: true”具体解释:如果添加了此字段,意味着pod中运行的应用可以直接使用node节点端口,这样node节点主机所在网络的其他主机,就可以通过访问该端口来访问此应用 。(类似于docker映射到宿主机的端口 。)
2)编辑221行,修改镜像版本,改成上面导入的0.29.0 。
K8S云平台部署过程说明

文章插图
 
上传到master服务器,路径自己能找到就行 。
3)设置pod时间,通常情况云服务器的时区为世界标准时间,和中国标准时间相差8个小时 。
加入红框部分,如下图:
K8S云平台部署过程说明

文章插图
 
参考模板文件如下:
K8S云平台部署过程说明

文章插图
 
> > > > 允许master节点部署pod
因为ingress-controller我们需要部署到master服务器上,而默认master不允许部署pod,所以使用如下方法解决:
K8S云平台部署过程说明

文章插图
 
输出如下:
node “K8S” untainted
输出error: taint “
node-role.kubernetes.io/master:” not found错误忽略 。
> > > > 执行mandatory.yaml
kubectl Apply -f mandatory.yaml
K8S云平台部署过程说明

文章插图
 
> > > > 确认Ingress-nginx容器
确认Ingress-nginx容器正常运行:
kubectl get pod -n ingress-nginx -o wide
K8S云平台部署过程说明

文章插图
 
> > > > 开启指定变量
上传文件configmap.yaml,然后调整相应参数,在该目录下执行以下命令
kubectl apply -f configmap.yaml 。
K8S云平台部署过程说明

文章插图
 
1.内部ingress-nginx,data参数说明:
1)proxy-add-original-uri-header: "true"
作用:获取到ingress的完整路径 。
2)enable-underscores-in-headers: "true"
作用:允许ingress支持自定义变量 。
3)use-forwarded-headers: "true"
作用:获取X-Forwarded-Proto,如https 。
6.drdb高可用
> > > > 安装相关支撑程序
在master1和master2安装

http://oss.linbit.com/drbd 下载drbd-9.0.19-1.tar.gz、drbd-utils-9.12.1.tar.gz,再将drbd-9.0.19-1.tar.gz、drbd-utils-9.12.2.tar.gz上传到虚拟机/usr/local目录,再装一些支撑软件 。
K8S云平台部署过程说明

文章插图
 
安装po4a-translate,编译drbd-utils的rpm包的时候,需要有命令【po4a-translate】的支持,但是系统上并没有这个命令 。
K8S云平台部署过程说明

文章插图
 
> > > > 编译drbd-utils
K8S云平台部署过程说明

文章插图
 
> > > > 编译drbd


推荐阅读