EKS kube config生成方法

生成kube config

EKS官方生成的kube config文件里,绑定了aws cli,如果机器上没装aws cli则会无法使用。此时可以通过以下命令获取token,再填充到kube config文件里:

aws eks get-token --cluster-name ${CLUSTER_NAME}

最终生成的文件如下:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ${*****}
    server: ${*****}.eks.amazonaws.com
  name: arn:aws:eks:${*****}
contexts:
- context:
    cluster: arn:aws:eks:${*****}
    user: arn:aws:eks:${*****}
  name: arn:aws:eks:${*****}
current-context: arn:aws:eks:${*****}
kind: Config
preferences: {}
users:
- name: arn:aws:${*****}
  user:
    token: ${TOKEN}

此时通过kubectl或者k8s client就能操作eks了。唯一限制的是token有效期最大只有15分钟,需要定时刷新操作,比较麻烦。

免刷新token生成方法

通过以下方式能生成一个不受影响的Kube config:

$ kubectl -n kube-system create serviceaccount kubeconfig-sa
$ kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:kubeconfig-sa
$ TOKENNAME=`kubectl -n kube-system get serviceaccount/kubeconfig-sa -o jsonpath='{.secrets[0].name}'`
$ TOKEN=`kubectl -n kube-system get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`

将生成的TOKEN填充到kube config中的${TOKEN}即可实现免刷新。

你可能感兴趣的:(EKS kube config生成方法)