Azureにkubernetesクラスターがあり、クラスターに2つのチームをデプロイしているため、2つの名前空間と2つのサービスアカウントを作成しました。各チームに、作成したserviceaccount用の独自のkubeconfigファイルを提供したいと思います。
私はKubernetesにかなり慣れていないため、kubernetesのWebサイトで明確な指示を見つけることができませんでした。サービスアカウントのkube構成ファイルを作成するにはどうすればよいですか?誰かが私を手伝ってくれることを願っています:)、私はむしろデフォルトのkube設定ファイルをチームに与えません。
何卒よろしくお願いいたします。
ブラム
# 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は、クラスターアカウントを使用するように初期化できます。これを行うには、クラスターのURL、クラスターの証明書、およびアカウントトークンを取得します。
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
クラスターファイルは〜/ .kube/configに保存されます。これで、クラスターにアクセスできるようになります。
kubectl --context=k8s get pods -n test-namespace
このフラグを追加--insecure-skip-tls-verify
自己署名証明書を使用している場合。