web-dev-qa-db-fra.com

Comment créer un fichier de configuration kubectl pour serviceaccount

J'ai un cluster kubernetes sur Azure et j'ai créé 2 espaces de noms et 2 comptes de service car j'ai deux équipes déployées sur le cluster. Je veux donner à chaque équipe son propre fichier kubeconfig pour le compte de service que j'ai créé.

Je suis assez nouveau sur Kubernetes et je n'ai pas pu trouver d'instructions claires sur le site Web de Kubernetes. Comment créer un fichier de configuration kube pour un compte de service? J'espère que quelqu'un pourra m'aider :), je préfère ne pas donner le fichier de configuration kube par défaut aux équipes.

Cordialement,

Bram

12
bramvdk
# your server name goes here
server=https://localhost:8443
# the name of the secret containing the service account token goes here
name=default-token-sg96k

ca=$(kubectl get secret/$name -o jsonpath='{.data.ca\.crt}')
token=$(kubectl get secret/$name -o jsonpath='{.data.token}' | base64 --decode)
namespace=$(kubectl get secret/$name -o jsonpath='{.data.namespace}' | base64 --decode)

echo "
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
  cluster:
    certificate-authority-data: ${ca}
    server: ${server}
contexts:
- name: default-context
  context:
    cluster: default-cluster
    namespace: default
    user: default-user
current-context: default-context
users:
- name: default-user
  user:
    token: ${token}
" > sa.kubeconfig
27
Jordan Liggitt

Kubectl peut être initialisé pour utiliser un compte de cluster. Pour ce faire, obtenez l'URL du cluster, le certificat de cluster et le jeton de compte.

KUBE_API_EP='URL+PORT'
KUBE_API_TOKEN='TOKEN'
KUBE_CERT='REDACTED'

echo $KUBE_CERT >deploy.crt
kubectl config set-cluster k8s --server=https://$KUBE_API_EP \ 
    --certificate-authority=deploy.crt  \
    --embed-certs=true
kubectl config set-credentials gitlab-deployer --token=$KUBE_API_TOKEN
kubectl config set-context k8s --cluster k8s --user gitlab-deployer
kubectl config use-context k8s

Le fichier de cluster est stocké sous: ~/.kube/config. Maintenant, le cluster est accessible en utilisant:

kubectl --context=k8s get pods -n test-namespace

ajouter ce drapeau --insecure-skip-tls-verify si vous utilisez un certificat auto-signé.

0
MUNGAI NJOROGE