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
# 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
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é.