Kubernetes(六)创建Node节点kubeconfig文件

  • A+
所属分类:Kubernetes

创建TLS Bootstrapping Token

创建kubelet kubeconfig

创建kube-proxy kubeconf

以下操作在master上进行,然后统一分发到node节点上

kubeconfig是用于在node节点上kubelet和kube-proxy访问集群的认证

下载kubectl 工具

官网下载或者直接本地上传

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

例如下载v1.13.0版本

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv kubectl /opt/kubernetes/bin

本地上传

[root@k8s-master tools]# cd /opt/kubernetes/bin
rz kubectl
chmod +x /opt/kubernetes/bin/kubectl
cd /root/ssl

创建 TLS Bootstrapping Token

TLS Bootstrapping Token用于引导kubelet自动生成证书

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

可以看一下token.csv文件的内容:b199e9e53ee694ea24e5b874dfc455bb,kubelet-bootstrap,10001,"system:kubelet-bootstrap",其中涉及到RBAC的知识。它表示使用kubelet-bootstrap并拥有10001权限,通过kubelet-bootstrap用户组使用第一个随机字符串来访问k8s集群。

创建kubelet bootstrapping kubeconfig 

这个文件是用于kubelet自动签发证书的

export KUBE_APISERVER="https://192.168.20.211:6443"

# 设置集群参数   
kubectl config set-cluster kubernetes \
  --certificate-authority=./ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=bootstrap.kubeconfig

# 设置客户端认证参数
kubectl config set-credentials kubelet-bootstrap \
  --token=${BOOTSTRAP_TOKEN} \
  --kubeconfig=bootstrap.kubeconfig

# 设置上下文参数
kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=bootstrap.kubeconfig

# 设置默认上下文
kubectl config use-context default --kubeconfig=bootstrap.kubeconfig

执行完后将生成bootstrap.kubeconfig文件

创建kube-proxy kubeconfig文件

kubectl config set-cluster kubernetes \
  --certificate-authority=./ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=kube-proxy.kubeconfig

kubectl config set-credentials kube-proxy \
  --client-certificate=./kube-proxy.pem \
  --client-key=./kube-proxy-key.pem \
  --embed-certs=true \
  --kubeconfig=kube-proxy.kubeconfig

kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig

kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

执行完后将生成kube-proxy.kubeconfig文件

YaLei

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: