k8s安装kubelet
Posted 雪地麋鹿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s安装kubelet相关的知识,希望对你有一定的参考价值。
- 部署 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节点操作。
以上是关于k8s安装kubelet的主要内容,如果未能解决你的问题,请参考以下文章
1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)
1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)
1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)