Infelizmente, a AWS ainda não tem um comando como "gcloud container clusters get-credentials" do GKE, que cria a configuração do kubectl para você. Então, você precisa criar o arquivo de configuração do kubectl manualmente.
Como mencionado no documento criação de um kubeconfig para o Amazon EKS , você deve pegue duas coisas do cluster:
-
Recupere o terminal para seu cluster. Use isso para o <endpoint-url>
em seu arquivo kubeconfig.
aws eks describe-cluster --cluster-name <cluster-name> --query cluster.endpoint
-
Recupere o certificateAuthority.data para seu cluster. Use isso para o <base64-encoded-ca-cert>
em seu arquivo kubeconfig.
aws eks describe-cluster --cluster-name <cluster-name> --query cluster.certificateAuthority.data
Crie a pasta kubectl padrão se ela ainda não existir.
mkdir -p ~/.kube
Abra seu editor de texto favorito e cole o seguinte bloco de código kubeconfig nele.
apiVersion: v1
clusters:
- cluster:
server: <endpoint-url>
certificate-authority-data: <base64-encoded-ca-cert>
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: heptio-authenticator-aws
args:
- "token"
- "-i"
- "<cluster-name>"
# - "-r"
# - "<role-arn>"
# env:
# - name: AWS_PROFILE
# value: "<aws-profile>"
Substitua o <endpoint-url>
pelo URL do ponto de extremidade criado para o seu cluster.
Substitua o <base64-encoded-ca-cert>
pelo certificateAuthority.data que foi criado para seu cluster.
Substitua o <cluster-name>
pelo nome do seu cluster.
Salve o arquivo na pasta kubectl padrão, com o nome do cluster no nome do arquivo. Por exemplo, se o nome do cluster for devel, salve o arquivo em ~/.kube/config-devel
.
Adicione esse caminho de arquivo à sua variável de ambiente KUBECONFIG
para que kubectl
saiba onde procurar sua configuração de cluster.
export KUBECONFIG=$KUBECONFIG:~/.kube/config-devel
(Opcional) Adicione a configuração ao seu arquivo de inicialização do shell para que ele seja configurado quando você abrir um shell.
Para shells Bash no macOS:
echo 'export KUBECONFIG=$KUBECONFIG:~/.kube/config-devel' >> ~/.bash_profile
Para shells Bash no Linux:
echo 'export KUBECONFIG=$KUBECONFIG:~/.kube/config-devel' >> ~/.bashrc
Teste sua configuração.
kubectl get svc
Saída:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m
Nota
Se você receber o erro "heptio-authenticator-aws": executable file not found in $PATH
, seu kubectl
não está configurado para o Amazon EKS. Para obter mais informações, consulte Configurar o kubectl para o Amazon EKS .