K8S-Demo集群实践05:安装kubectl并配置集群管理员账户
- kubectl是一个命令行工具,通过访问apiserver的接口,对集群进行操作管理
- k8s-demo有3个master节点和3个node节点,为了方便操作kubectl部署在3个master节点上
- 可以只部署在master1上,也可以部署在所有节点上,根据实际需要部署
一、下载kubectl
[root@master1 ~]# cd /opt/install/soft
[root@master1 ~]# wget https://dl.k8s.io/v1.18.5/kubernetes-client-linux-amd64.tar.gz
[root@master1 ~]# tar -xzvf kubernetes-client-linux-amd64.tar.gz
[root@master1 ~]# cd kubernetes/client/bin/
[root@master1 bin]# mv kubectl /opt/k8s/bin/
- 下载地址 https://kubernetes.io/docs/setup/release/notes
- k8s-demo使用 v1.18.5,后续会写一篇更新到最新版本的文章(挖个坑先~)
二、把kubectl分发到3个master节点
[root@master1 ~]# cd /opt/k8s/bin/
[root@master1 bin]# for node_ip in ${MASTER_IPS[@]}
do
echo ">>> ${node_ip}"
scp kubectl root@${node_ip}:/opt/k8s/bin/
ssh root@${node_ip} "chmod +x /opt/k8s/bin/*"
done
三、配置集群管理员账户 kubeconfig
[root@master1 ~]# cd /opt/install/kubeconfig
## 设置集群参数
[root@master1 kubeconfig]# kubectl config set-cluster k8s-demo \
--certificate-authority=/opt/install/cert/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=kubectl.kubeconfig
## 设置客户端认证参数
[root@master1 kubeconfig]# kubectl config set-credentials k8s-demo-admin \
--client-certificate=/opt/install/cert/kubectl-admin.pem \
--client-key=/opt/install/cert/kubectl-admin-key.pem \
--embed-certs=true \
--kubeconfig=kubectl.kubeconfig
## 设置上下文参数 用户名 k8s-demo-admin
[root@master1 kubeconfig]# kubectl config set-context k8s-demo-admin-ctx \
--cluster=k8s-demo \
--user=k8s-demo-admin \
--kubeconfig=kubectl.kubeconfig
## 设置默认上下文
[root@master1 kubeconfig]# kubectl config use-context k8s-demo-admin-ctx --kubeconfig=kubectl.kubeconfig
- /opt/install/kubeconfig 是临时存放目录
- –embed-certs=true:将 ca.pem 和 admin.pem 证书内容嵌入到生成的 kubectl.kubeconfig 文件中,否则写入的是证书文件路径后续拷贝 kubeconfig 到其它机器时,还需要单独拷贝证书文件,有点不方便
四、把kubeconfig分发到3个master节点
[root@master1 ~]# cd /opt/install/kubeconfig
[root@master1 kubeconfig]# for node_ip in ${MASTER_IPS[@]}
do
echo ">>> ${node_ip}"
ssh root@${node_ip} "mkdir -p ~/.kube"
scp kubectl.kubeconfig root@${node_ip}:~/.kube/config
done
五、kubectl命令行简介
1、查看资源缩写
[root@master1 ~]
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits