kubernetes 1.20.7 二进制安装-kubectl客户端配置以及kubeconfig说明(六)

警告
本文最后更新于 2021-06-21 10:20,文中内容可能已过时。

官方文档:

https://kubernetes.io/zh/docs/concepts/configuration/organize-cluster-access-kubeconfig/

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

1.安装kubectl

1
2
3
4
5
6
# 具体装在哪台机器根据自己的需求
cp /server/packages/kubernetes/server/bin/kubectl /usr/local/bin/

# 配置completion补全增强
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc

2.配置kubeconfig

默认情况下,kubectl在$HOME/.kube目录下查找名为config的文件。 也可以通过设置KUBECONFIG环境变量或者设置--kubeconfig参数来指定kubeconfig文件。

kubeconfig由集群信息,用户凭据,上下文组成,这些内容在一个配置文件中可以配置多个,所以kubeconfig支持多集群配置,并且可以通过上下文来切换集群。

下面我们使用kubectl命令生成一个kubeconfig配置文件

1.将群集信息添加到配置文件中

1
2
3
4
5
6
7
8
cd /etc/kubernetes/

# 配置apiserver地址、CA机构证书
kubectl config set-cluster kubernetes \
  --embed-certs=true \
  --certificate-authority=/etc/kubernetes/pki/ca/ca.pem \
  --server=https://172.17.20.200:6443 \
  --kubeconfig=admin.conf

参数说明: --set-cluster kubernetes: 后续的设置将对一个名为kubernetes的集群生效(不存在会在配置文件中添加)

--embed-certs: 设置为true,将证书信息内嵌到配置文件中(默认是配置的证书路径)

--certificate-authority: 指定一个信任的根CA,用于校验服务端证书

--server: 指定apiserver的地址

--kubeconfig: 指定配置文件路径

2.将用户认证信息添加到配置文件中

1
2
3
4
5
kubectl config set-credentials admin \
  --embed-certs=true \
  --client-certificate=/etc/kubernetes/pki/admin.pem \
  --client-key=/etc/kubernetes/pki/admin-key.pem \
  --kubeconfig=admin.conf 

这时kubectl有了集群信息,用户认证信息,但还是不能使用,我们需要在添加一个上下文信息,用于表示哪个用户和哪个集群绑定

参数说明: set-credentials admin: 对当前用户设置一个名称(随便起)

--embed-certs: 设置为true,将证书信息内嵌到配置文件中(默认是配置的证书路径)

--client-certificate: 访问apiserver使用的证书

--client-key: 访问apiserver使用的证书的私钥

--kubeconfig: 指定配置文件路径

3.将上下文(context)信息添加到配置文件中

1
2
3
4
kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=admin \
  --kubeconfig=admin.conf

将admin用户与kubernetes这个集群绑定,这时通过kubectl cluster info –kubeconfig=admin.conf –context=kubernetes就可以使用了,但是指定上下文很不方便,我们下一步设置一个默认的上下文

set-context kubernetes: 上下文的名称

--cluster: 指定哪个集群

--user: 指定哪个用户

--kubeconfig: 指定配置文件路径

4.指定默认要使用哪个上下文配置

1
kubectl config use-context kubernetes --kubeconfig=admin.conf

5.复制配置文件到默认查找目录

1
cp admin.conf ~/.kube/config

3.测试是否正常使用

1
2
kubectl cluster-info
kubectl get svc
请我喝杯水
SoulChild 微信号 微信号
SoulChild 微信打赏 微信打赏
0%