Kubernetes api

Материал из InformationSecurity WIKI
Версия от 12:16, 13 марта 2022; Drakylar (обсуждение | вклад) (Запросы)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Страница посвящена командам kubectl и curl, которые позволяют работать с Kubernetes API.

Похожую информацию можно найти тут https://kubernetes.io/ru/docs/reference/kubectl/cheatsheet/

Настройка утилит

kubectl

Для общения с API можно воспользоваться стандартным ПО kubectl.

Пример запроса:

kubectl get secrets


Запросы можно делать inline с токеном:

kubectl --token=$TOKEN --server=$APISERVER --insecure-skip-tls-verify=true

curl

Для curl кроме стандартных параметров (токен, неймспейс) потребуется адрес API-сервера.

export APISERVER=${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}
export SERVICEACCOUNT=/var/run/secrets/kubernetes.io/serviceaccount
export NAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)
export TOKEN=$(cat ${SERVICEACCOUNT}/token)
# Лишняя строка, но можно использовать с curl --cacert ${CACERT}
# export CACERT=${SERVICEACCOUNT}/ca.crt

curl -k --header "Authorization: Bearer ${TOKEN}"

Запросы

Запросы будут разделены на ресурсы, к которым их отправляют.

Текущая конфигурация

Конфиг

Общая информация

kubectl config view


Пользователи

Список пользователей

kubectl config get-users
kubectl config view -o jsonpath='{.users[*].name}'

Удалить пользователя

kubectl config unset users.foo

Контексты

Список контекстов

kubectl config get-contexts


Текущий контекст

kubectl config current-context

Установить контекст

kubectl config use-context my-cluster-name

Namespace

Установить namespace по-умолчанию

kubectl config set-context --current --namespace=ggckad-s2


Secrets

Секреты - токены, пароли, ключи.

list

kubectl config set-context --current --namespace=ggckad-s2