文章都可以转载、引用,标明转载出处即可。

第四节:安装kubectl 工具

Kubernetes Mr.c 2587℃ 0评论

  kubectl 命令是对kubernetes集群进行控制的工具,只需要在master节点上安装即可,master的安装需要先安装kubectl 工具,安装包在kubernetes-server-linux-amd64.tar.gz 里面已经包含了。
  下载地址(服务器直接下载不了就用迅雷下): https://dl.k8s.io/v1.8.12/kubernetes-server-linux-amd64.tar.gz
本节顺便也把后面需要用到的kubeconfig 文件给创建好。
一:安装kubectl 工具
由于是下载的二进制包,所以只需要解压,然后复制可执行文件到/usr/bin 下即可。

[root@k8s-master k8s]# tar zxvf kubernetes-server-linux-amd64.tar.gz
[root@k8s-master k8s]# cd  ./kubernetes/server/bin
[root@k8s-master bin]# cp kubectl /usr/bin/

二:创建 kubectl config 文件

[root@k8s-master ~]# export KUBE_APISERVER="https://master.cnyunwei.cc:6443"
[root@k8s-master ~]# echo $KUBE_APISERVER
https://master.cnyunwei.cc:6443
# 设置集群参数
[root@k8s-master ~]# kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER}
# 设置客户端认证参数
[root@k8s-master ~]# kubectl config set-credentials admin \
  --client-certificate=/etc/kubernetes/ssl/admin.pem \
  --embed-certs=true \
  --client-key=/etc/kubernetes/ssl/admin-key.pem
# 设置上下文参数
[root@k8s-master ~]# kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=admin
# 设置默认上下文
[root@k8s-master ~]# kubectl config use-context kubernetes

完成后会创建/root/.kube 目录,并生成一个config 文件,~/.kube/config文件拥有对该集群的最高权限,请妥善保管。
三:创建 kubeconfig 文件
  以下操作只需要在master节点上执行,生成的*.kubeconfig文件可以直接拷贝到node节点的/etc/kubernetes目录下。
1.创建 TLS Bootstrapping Token
Token可以是任意的包含128 bit的字符串,可以使用安全的随机数发生器生成。

[root@k8s-master ~]# export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
[root@k8s-master ~]# cat > token.csv <<EOF
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
EOF

创建完成后一定要检查 token.csv 文件,确认其中的 ${BOOTSTRAP_TOKEN} 环境变量已经被真实的值替换。

[root@k8s-master ~]# cat token.csv 
e7ef1560fb1c2e2f1e8cd43af0dc738d,kubelet-bootstrap,10001,"system:kubelet-bootstrap"
[root@k8s-master ~]# cp token.csv /etc/kubernetes/

  token.csv 这个文件对后续流程非常重要 ,BOOTSTRAP_TOKEN 将被写入到 kube-apiserver 使用的 token.csv 文件和 kubelet 使用的 bootstrap.kubeconfig 文件,如果后续重新生成了 BOOTSTRAP_TOKEN,则需要:
更新 token.csv 文件,分发到所有机器 (master 和 node)的 /etc/kubernetes/ 目录下;
重新生成 bootstrap.kubeconfig 文件,分发到所有 node 机器的 /etc/kubernetes/ 目录下;
重启 kube-apiserver 和 kubelet 进程;
重新 approve kubelet 的 csr 请求;

2.创建 kubelet bootstrapping kubeconfig 文件

[root@k8s-master ~]# cd /etc/kubernetes
[root@k8s-master kubernetes]# export KUBE_APISERVER="https://master.cnyunwei.cc:6443"
# 设置集群参数
[root@k8s-master kubernetes]#  kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=bootstrap.kubeconfig
# 设置客户端认证参数
[root@k8s-master kubernetes]#  kubectl config set-credentials kubelet-bootstrap \
  --token=${BOOTSTRAP_TOKEN} \
  --kubeconfig=bootstrap.kubeconfig
# 设置上下文参数
[root@k8s-master kubernetes]#  kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=bootstrap.kubeconfig
# 设置默认上下文
[root@k8s-master kubernetes]#  kubectl config use-context default --kubeconfig=bootstrap.kubeconfig

–embed-certs 为 true 时表示将 certificate-authority 证书写入到生成的 bootstrap.kubeconfig 文件中;

3.创建 kube-proxy kubeconfig 文件

# 设置集群参数
[root@k8s-master kubernetes]#  kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=kube-proxy.kubeconfig
# 设置客户端认证参数
[root@k8s-master kubernetes]#  kubectl config set-credentials kube-proxy \
  --client-certificate=/etc/kubernetes/ssl/kube-proxy.pem \
  --client-key=/etc/kubernetes/ssl/kube-proxy-key.pem \
  --embed-certs=true \
  --kubeconfig=kube-proxy.kubeconfig
# 设置上下文参数
[root@k8s-master kubernetes]#  kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig
# 设置默认上下文
[root@k8s-master kubernetes]#  kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

4.分发配置文件到node节点

[root@k8s-master kubernetes]# scp *.kubeconfig root@node1.cnyunwei.cc:/etc/kubernetes/
[root@k8s-master kubernetes]# scp *.kubeconfig root@node2.cnyunwei.cc:/etc/kubernetes/

转载请注明:菜鸟运维 » 第四节:安装kubectl 工具

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址