kubernetes部署3——部署apiserver、scheduler、controller-manage、kubelet、proxy

一、部署master组件

1、生成api-server证书

#将master.zip移到master1的目录下

[root@master1 ~]# unzip master.zip #进行解压

#会解压出apiserver.sh 、controller-manager.sh、scheduler.sh三个脚本

#在/opt目录下创建一个k8s的目录,已经配置、命令、证书的目录

[root@master1 ~]# mkdir /opt/kubernetes/{cfg,bin,ssl} -p

#在/k8s目录下创建k8s-cert目录

[root@master1 k8s]# mkdir k8s-cert

[root@master1 k8s]# cd k8s-cert/

#将k8s-cert.sh的脚本放进去,并修改脚本的五个IP

cat > server-csr.json <<EOF

{

“CN”: “kubernetes”,

“hosts”: [

“10.0.0.1”,

“127.0.0.1”,

“192.168.200.11”, //master1

“192.168.200.14”, //master2

“192.168.200.15”, //(master)

“192.168.200.16”, //(backup)

“192.168.200.100”, // VIP

“kubernetes”,

“kubernetes.default”,

“kubernetes.default.svc”,

“kubernetes.default.svc.cluster”,

“kubernetes.default.svc.cluster.local”

],

“key”: {

​ “algo”: “rsa”,

​ “size”: 2048

},

“names”: [

​ {

​ “C”: “CN”,

​ “L”: “BeiJing”,

​ “ST”: “BeiJing”,

​ “O”: “k8s”,

​ “OU”: “System”

​ }

]

}

EOF

[root@master1 k8s-cert]# bash k8s-cert.sh #运行脚本生成证书

[root@master1 k8s-cert]# ls *.pem #查看证书,会生成8个证书
admin-key.pem admin.pem ca-key.pem ca.pem kube-proxy-key.pem kube-proxy.pem server-key.pem server.pem

#将ca证书和server证书移到/ssl下面

[root@master1 k8s-cert]# cp capem serverpem /opt/kubernetes/ssl/

2、解压kubernetes压缩包

#将kubernetes放到/k8s目录下

[root@master1 k8s]# tar zxvf kubernetes-server-linux-amd64.tar.gz

[root@master1 kubernetes]# cd /root/k8s/kubernetes/server/bin

#将kube-apiserver、kube-scheduler、kubectl、kube-controller-manager移到/opt/kubernetes/bin/下

[root@master1 bin]# cp kube-apiserver kubectl kube-controller-manager kube-scheduler /opt/kubernetes/bin/

3、创建随机序列号

[root@master1 bin]# head -c 16 /dev/urandom | od -An -t x | tr -d ’ ’

4f82e5d0493ea31ed221e22b913e3d6c

#将序列号放进/opt/kubernetes/cfg/token.csv中

[root@master1 bin]# vim /opt/kubernetes/cfg/token.csv

4f82e5d0493ea31ed221e22b913e3d6c,kubelet-bootstrap,10001,“system:kubelet-bootstrap”

#4f82e5d0493ea31ed221e22b913e3d6c是序列号、kubelet-bootstrap是用户名、10001是id、system:kubelet-bootstrap是角色

4、开启apiserver

[root@master1 k8s]# bash apiserver.sh 192.168.200.11 https://192.168.200.11:2379,https://192.168.200.12:2379,https://192.168.200.13:2379

#本地IP、etcd的节点IP

5、检查是否启动成功

[root@master1 k8s]# systemctl status kube-apiserver.service

#也可以监听6443端口

在这里插入图片描述

二、启动scheduler服务

#依然是在mster上做

#在scheduler.sh目录下启动脚本

[root@master1 k8s]# ./scheduler.sh 127.0.0.1

#检验是否启动成功

[root@master1 k8s]# ./scheduler.sh 127.0.0.1

在这里插入图片描述

三、启动controller-manage

[root@master1 k8s]# ./controller-manager.sh 127.0.0.0

[root@master1 k8s]# systemctl status kube-controller-manager.service

在这里插入图片描述

四、查看节点状态

[root@master1 k8s]# /opt/kubernetes/bin/kubectl get cs

在这里插入图片描述

五、部署node1节点

1、将kubelet、kube-proxy考到node1上

#在master上操作

[root@master1 bin]# scp kubelet kube-proxy root@192.168.200.12:/opt/kubernetes/bin/

[root@master1 bin]# scp kubeletbe-proxy root@192.168.200.13:/opt/kubernetes/bin/

2、解压node.zip

#在node1节点上操作

[root@node1 ~]# unzip node.zip

#会解压出proxy.sh、kubelet.sh

3、拷贝kubeconfig.sh文件进行重命名

#创建kubeconfig

[root@master1 k8s]# mkdir kubeconfig

[root@master1 k8s]# cd kubeconfig/

#将kubeconfig.sh放入/k8s目录下

#进行重命名

[root@master1 kubeconfig]# mv kubeconfig.sh kubeconfig

[root@master1 kubeconfig]# vim kubeconfig

# 设置客户端认证参数

kubectl config set-credentials kubelet-bootstrap \

–token=4f82e5d0493ea31ed221e22b913e3d6c \ #之前设置的tokenID号

–kubeconfig=bootstrap.kubeconfig

4、设置环境变量

[root@master1 kubeconfig]# vim /etc/profile

export PATH=$PATH:/opt/kubernetes/bin/

[root@master1 kubeconfig]# source /etc/profile

5、生成配置文件并拷贝到node上

[root@master1 kubeconfig]# bash kubeconfig 192.168.200.11 /root/k8s/k8s-cert/

[root@master1 kubeconfig]# ls
bootstrap.kubeconfig kubeconfig kube-proxy.kubeconfig

[root@master1 kubeconfig]# scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.200.12:/opt/kubernetes/cfg/

[root@master1 kubeconfig]# scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.200.13:/opt/kubernetes/cfg/

在这里插入图片描述

6、创建bootstrap角色

#赋予权限用于连接apiserver请求签名(关键)

#在master节点上操作

[root@master1 kubeconfig]# kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

7、启动kubelet

#在node节点上操作

[root@node1 ~]# bash kubelet.sh 192.168.200.12

在这里插入图片描述

#在master节点上操作

#检查node1节点的请求

[root@master1 kubeconfig]# kubectl get csr

#Pending表示等待集群给该节点颁发证书

在这里插入图片描述

#颁发证书

[root@master1 kubeconfig]# kubectl certificate approve node-csr-dt6x_jhn50iERQlO_9VgnfJV1jTrPgnOBjnHf_Y9tNE

#检查节点

[root@master1 kubeconfig]# kubectl get csr

#Approved,Issued已经被允许加入节点了

#查看集群节点

[root@master1 kubeconfig]# kubectl get node

在这里插入图片描述

8、启动proxy服务

[root@node1 ~]# bash proxy.sh 192.168.200.12

#查看服务状态

[root@node1 ~]# systemctl status kube-proxy.service

在这里插入图片描述

六、配置node2节点

1、拷贝文件

#把现成的/opt/kubernetes复制到node2中

[root@node1 opt]# scp -r /opt/kubernetes/ root@192.168.200.13:/opt/

将node1节点的kubelet、kube-proxy拷贝到node2中

[root@node1 system]# scp kubelet.service kube-proxy.service root@192.168.200.13:/usr/lib/systemd/system/

2、删除证书

#因为拷贝过来的证书是node1申请的node2无法使用,所有需要删掉自己申请

[root@localhost ~]# cd /opt/kubernetes/ssl/

[root@localhost ssl]# rm -rf *

3、修改配置文件

#切换到cfg目录下

[root@localhost ssl]# cd …/cfg/

[root@localhost cfg]# vim kubelet

–hostname-override=192.168.200.13 \ #修改成本机IP

[root@localhost cfg]# vim kubelet.config

address: 192.168.200.13 #修改成本机IP

[root@localhost cfg]# vim kube-proxy

–hostname-override=192.168.200.13 \ #修改成本机IP

4、启动服务

[root@localhost cfg]# systemctl start kubelet.service

[root@localhost cfg]# systemctl enable kubelet.service

[root@localhost cfg]# systemctl start kube-proxy.service

[root@localhost cfg]# systemctl enable kube-proxy.service

5、授权许可加入集群

#在master操作,检查node2的请求

[root@master1 kubeconfig]# kubectl get csr

#授权许可加入集群

[root@master1 kubeconfig]# kubectl certificate approve node-csr-zPauba37OpC-w75hejeUiUmlauEPEnCyiyQLm0CGvlc

#查看集群中的节点

[root@master1 kubeconfig]# kubectl get node

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值