乐趣区

关于k8s:k8s安装kubelet

  1. 部署 kubectl
    1.1 获取 kubectl
    [root@master01 ~]# cd /opt/k8s/work
    [root@master01 work]# wget https://storage.googleapis.co…
    [root@master01 work]# tar -xzvf kubernetes-client-linux-amd64.tar.gz
    提醒:本步骤操作仅须要在 master01 节点操作。

1.2 散发 kubectl
[root@master01 ~]# cd /opt/k8s/work
[root@master01 work]# source /root/environment.sh
[root@master01 work]# for master_ip in ${MASTER_IPS[@]}
do
echo “>>> ${master_ip}”
scp kubernetes/client/bin/kubectl root@${master_ip}:/opt/k8s/bin/
ssh root@${master_ip} “chmod +x /opt/k8s/bin/*”
done
提醒:本步骤操作仅须要在 master01 节点操作。

1.3 创立 admin 证书和密钥
[root@master01 ~]# cd /opt/k8s/work
[root@master01 work]# source /root/environment.sh
[root@master01 work]# cat > admin-csr.json <<EOF
{
“CN”: “admin”,
“hosts”: [],
“key”: {

   "algo": "rsa",
   "size": 2048

},
“names”: [

   {
       "C": "CN",
       "ST": "beijing",
       "L": "beijing",
       "O": "system:masters",
       "OU": "System"
   }

]
}
EOF #创立 admin 的 CA 证书申请文件
提醒:本步骤操作仅须要在 master01 节点操作。

解释:

O 为 system:masters:kube-apiserver 收到该证书后将申请的 Group 设置为 system:masters;

预约义的 ClusterRoleBinding cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,即该 Role 授予所有 API 的权限;

该证书只会被 kubectl 当做 client 证书应用,所以 hosts 字段为空。

[root@master01 ~]# cd /opt/k8s/work
[root@master01 work]# cfssl gencert -ca=/opt/k8s/work/ca.pem \
-ca-key=/opt/k8s/work/ca-key.pem -config=/opt/k8s/work/ca-config.json \
-profile=kubernetes admin-csr.json | cfssljson -bare admin #生成密钥和证书
1.4 创立 kubeconfig 文件
kubectl 默认从 ~/.kube/config 文件读取 kube-apiserver 地址和认证信息。只需在 master 节点部署一次,其生成的 kubeconfig 文件是通用的,能够拷贝到须要执行 kubectl 命令的机器,重命名为 /.kube/config 即可。

[root@master01 ~]# cd /opt/k8s/work
[root@master01 work]# source /root/environment.sh
[root@master01 work]# kubectl config set-cluster kubernetes \
–certificate-authority=/opt/k8s/work/ca.pem \
–embed-certs=true \
–server=${KUBE_APISERVER} \
–kubeconfig=kubectl.kubeconfig # 设置集群参数
[root@master01 work]# kubectl config set-credentials admin \
–client-certificate=/opt/k8s/work/admin.pem \
–client-key=/opt/k8s/work/admin-key.pem \
–embed-certs=true \
–kubeconfig=kubectl.kubeconfig # 设置客户端认证参数
[root@master01 work]# kubectl config set-context kubernetes \
–cluster=kubernetes \
–user=admin \
–kubeconfig=kubectl.kubeconfig # 设置上下文参数
[root@master01 work]# kubectl config use-context kubernetes –kubeconfig=kubectl.kubeconfig # 设置默认上下文
提醒:本步骤操作仅须要在 master01 节点操作。

解释:

–certificate-authority:验证 kube-apiserver 证书的根证书;

–client-certificate、–client-key:刚生成的 admin 证书和私钥,连贯 kube-apiserver 时应用;

–embed-certs=true:将 ca.pem 和 admin.pem 证书内容嵌入到生成的 kubectl.kubeconfig 文件中(默认写入的是证书文件门路,后续须要拷贝 kubeconfig 和该证书文件至到其它机器。)。

1.5 散发 kubeconfig
[root@master01 ~]# cd /opt/k8s/work
[root@master01 work]# source /root/environment.sh
[root@master01 work]# for master_ip in ${MASTER_IPS[@]}
do
echo “>>> ${master_ip}”
ssh root@${master_ip} “mkdir -p ~/.kube”
scp kubectl.kubeconfig root@${master_ip}:~/.kube/config
ssh root@${master_ip} “echo ‘export KUBECONFIG=\$HOME/.kube/config’ >> ~/.bashrc”
done
** 提醒:本步骤操作仅须要在 master01 节点操作。

退出移动版