kubectl
Подключение к кластеру по токену
Секрет и цепочку сертификатов можно найти на ControlPanel ноде (по умолчанию, порт 22623) https://<Address Node>:22623/config/master или /config/worker
Там будет конфиг kubeconfig
:
clusters:
- cluster:
certificate-authority-data: LS0t...
name: someName
contexts:
- context:
cluster: someName
user: userSecret
name: contextName
current-context: contextName
preferences: {}
users:
- name: userSecret
user:
token: eyJhbGc...
certificate-authority-data
мы декодируем из base64 (там будет цепочка PEM сертификатов) и записываем в файл cert.crt
. Далее, настраиваем контекст в kubectl
:
kubectl config set-credentials "userSecret" --token="<JWT>"
kubectl config set-cluster clusterName --server="https://<Address Node>:6443" --certificate-authority="/path/to/chain/cert.crt" --embed-certs
kubectl config set-context contextName --cluster="clusterName" --user="usereSecret"
kubectl config use-context contextName
kubectl get pods
Примеры использования kubectl
Получаем список пространств kubectl get namespaces kubectl get ns Создать пространство: kubectl create ns <name> Удалить пространство: kubectl delete namespaces <name>
Работа с подами Получить информацию о поде: kubectl describe pod re-privategallery-backend-978dddf6-d2wgx Все поды: kubectl get pods
Текущий контекст: kubectl config current-context Переключить в контексте на другой namespace: kubectl config set-context <CONTEXT, ex: minikube> --namespace <NAMESPACE>
Посмотреть Persistance Volume: kubectl get pv Посмотреть Persistance Volume Claim: kubectl get pvc
Troubleshooting
Что еще можем получить
Запуск без проверки сертификата:
$ kubectl --insecure-skip-tls-verify <cmd>
Доступные ресурсы (= информация о k8s-ноде)
kubectl --insecure-skip-tls-verify api-resources
Можно получить HTTP запрос, соотв команде kubectl:
$ kubectl --insecure-skip-tls-verify auth can-i list pods -v 9
I0112 16:04:38.235938 37941 round_trippers.go:435] curl -k -v -XGET -H "Accept: application/json, */*" -H "Authorization: Bearer <masked>" -H "User-Agent: kubectl/v1.21.5 (darwin/amd64) kubernetes/aea7bba" 'https://<IP>:6443/api/v1?timeout=32s'
...
I0112 16:04:38.270815 37941 round_trippers.go:435] curl -k -v -XPOST -H "Accept: application/json, */*" -H "Content-Type: application/json" -H "User-Agent: kubectl/v1.21.5 (darwin/amd64) kubernetes/aea7bba" -H "Authorization: Bearer <masked>" 'https://<IP>:6443/apis/authorization.k8s.io/v1/selfsubjectaccessreviews'
Плагины
У kubectl есть система плагинов. Есть плагин Krew, который упрощает установку других плагинов. Как поставить Krew https://krew.sigs.k8s.io/docs/user-guide/quickstart/
Полезные плагины:
rakkess / access-matrix
Позволяет посмотреть все полномочия, которые были предоставлены пользователю
$ kubectl krew install access-matrix
$ kubectl access-matrix -n my-project-dev --as jean
kubectl-who-can
Этот проект позволяет нам узнать, какие пользователи могут выполнить определенное действие. Он помогает ответить на вопрос: «Кто может это сделать?».
rbac-lookup
Этот проект предоставляет обзор RBAC-правил. Он помогает ответить на вопросы: «В какую роль входят jean
и sarah
?», «В какую роль входят все пользователи?», «В какую роль входит вся группа?».
Last updated
Was this helpful?