Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0、前言


 总体架构目录:ASP.NET Core分布式项目实战-目录html

k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录node

 

一、部署master组件


master 服务器的组件有:kube-apiserver、kube-controller-manager、kube-schedulergit

所以须要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md ,固然你们能够下载更高版本的。github

这边须要准备这几个文件web

kubectl(用于运行集群命令的管理工具):具体可参考:http://docs.kubernetes.org.cn/61.html   中文文档。bootstrap

kubeconfig.sh(用来生成适用于node节点的配置文件以及证书的)、master服务器的k8s组件api

第一步:解压缩包 unzip master.zip

把里面的kube-apiserver、 kube-controller-manager、 kube-scheduler   复制到 /opt/kubernetes/bin 里面,而且把bin文件夹下面的文件设置为可执行权限,chmod +x /ops/kubernetes/bin/*服务器

 

第二步:已把各个组件放到对应的目录后,进入我刚才的解压出来的文件夹中,把后缀为.sh的文件设置为可执行权限由于咱们要开始启动master组件

chmod +x *.sh微信

第三步:

把上面说到的 kubectl 管理工具放到 /ops/kubernetes/bin,同样的也设置可执行权限。架构

而后把kubeconfig.sh 放到  以前文章介绍中的 /home/ssl  目录下,而后执行如下里面的内容,会生成以下的文件及证书,主要用于node组件

token.csv、bootstrap.kubeconfig、kube-proxy-key.pem、kube-proxy.kubeconfig kube-proxy.pem

  

第四步:把生成的token.csv 文件复制到 /opt/kubernetes/cfg/  ,由于在运行 master组件sh文件须要用到。

第五步:终于能够了运行啦

./apiserver.sh 192.168.161.151 https://192.168.161.151:2379,https://192.168.161.152:2379,https://192.168.161.153:2379

./scheduler.sh 127.0.0.1

./controller-manager.sh 127.0.0.1

 

而后运行以查看一下运行状态   ps -ef |grep kube ,能够看到 都在运行,至此master组件已经所有运行了。

运行如下查看集群etcd的健康状态啦 kubectl get cs

 

 

二、部署node组件


 第一步:把上面的ssl中建立的文件

bootstrap.kubeconfig、kube-proxy.kubeconfig 

copy 到node节点上

scp -r *kubeconfig root@192.168.161.152:/opt/kubernetes/cfg
scp -r *kubeconfig root@192.168.161.153:/opt/kubernetes/cfg

 

第二步:在下载的k8s中找到node服务器须要的k8s文件组件复制到服务器上。

而后进入到 文件夹中,而后把后缀为 sh 的文件添加可执行权限 chmod +x  *sh

把kubelet、kube-proxy都加上可执行权限,而后把这两个文件copy到/ops/kubernetes/bin 中

cp kubelet kube-proxy /opt/kubernetes/bin/
chmod +x /opt/kubernetes/bin/*

 

第三步:运行kubelet.sh  kube-proxy.sh(节点node2也按照相同的部署)

./kubelet.sh 192.168.161.152 10.10.10.2


./proxy.sh 192.168.161.152

 

第四步:运行kubelet 和kube-proxy 

发现运行报错,好吧,发现没有权限

解决方案:须要在 master节点里面为 请求的用户即bootstrap.kubeconfig  里面的 user 用户建立角色(kubelet-bootstrap)

切换到master 上,执行如下命令便可。

kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

 

第五步:在node服务器上启动kubelet,在master 上面便可以查看 csr 证书

 

证书生成后,就需容许 证书

 

kubectl certificate approve 证书名(即上面截图的name值)

而后就能够查看 集群状态了
kubectl get node

 

至此,k8s集群部署结束。

 

接下来就要测试一下部署webUI啦。

看下图

 

三、部署webUI

须要三个文件

dashboard-rbac.yaml :rbac 权限
dashboard-deployment.yaml :部署pod
dashboard-service.yaml :发布服务

分别执行:

kubectl create -f dashboard-rbac.yaml
kubectl create -f dashboard-deployment.yaml
kubectl create -f dashboard-service.yaml

执行完后,咱们来看一下pod,发现dashboard已经部署成功。

接下来咱们看一下发布服务的端口

 

 大公告成。

 

 

 

github:fork me

asp.net Core 交流群:787464275 欢迎加群交流
若是您认为这篇文章还不错或者有所收获,您能够点击右下角的【推荐】按钮精神支持,由于这种支持是我继续写做,分享的最大动力!

做者:LouieGuo
声明:原创博客请在转载时保留原文连接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,若有特殊需求请与本人联系! 

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

相关文章
相关标签/搜索