Описание задачи
Выполните приведённые команды в консоли. Получите вывод команд. Сохраните задачу 1 как справочный материал.
kubectl create serviceaccount netology
kubectl get serviceaccounts
kubectl get serviceaccount
kubectl get serviceaccount netology -o yaml
kubectl get serviceaccount default -o json
kubectl get serviceaccounts -o json > serviceaccounts.json
kubectl get serviceaccount netology -o yaml > netology.yml
kubectl delete serviceaccount netology
kubectl apply -f netology.yml
- Как создать сервис-аккаунт?
kubectl create serviceaccount netology
serviceaccount/netology created
- Как просмотреть список сервис-акаунтов?
kubectl get serviceaccounts
NAME SECRETS AGE
default 1 7d20h
netology 1 86s
nfs-server-nfs-server-provisioner 1 7d11h
kubectl get serviceaccount
kubectl get serviceaccount
NAME SECRETS AGE
default 1 7d20h
netology 1 100s
nfs-server-nfs-server-provisioner 1 7d11h
- Как получить информацию в формате YAML и/или JSON?
kubectl get serviceaccount netology -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: "2022-06-19T08:34:25Z"
name: netology
namespace: default
resourceVersion: "2703499"
uid: cb414c1f-657e-4095-bb06-7ee2f93800fb
secrets:
- name: netology-token-lqf69
kubectl get serviceaccount default -o json
{
"apiVersion": "v1",
"kind": "ServiceAccount",
"metadata": {
"creationTimestamp": "2022-06-11T11:58:50Z",
"name": "default",
"namespace": "default",
"resourceVersion": "313",
"uid": "761aa381-7b81-4410-943d-dae612ff7fc8"
},
"secrets": [
{
"name": "default-token-mr29n"
}
]
}
- Как выгрузить сервис-акаунты и сохранить его в файл?
kubectl get serviceaccounts -o json > serviceaccounts.json
kubectl get serviceaccount netology -o yaml > netology.yml
Созданы соотвествующие файлы.
- Как удалить сервис-акаунт?
kubectl delete serviceaccount netology
serviceaccount "netology" deleted
- Как загрузить сервис-акаунт из файла?
kubectl apply -f netology.yml
serviceaccount/netology created
Описание задачи
Выбрать любимый образ контейнера, подключить сервис-акаунты и проверить доступность API Kubernetes
kubectl run -i --tty fedora --image=fedora --restart=Never -- sh
Просмотреть переменные среды
env | grep KUBE
Получить значения переменных
K8S=https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT
SADIR=/var/run/secrets/kubernetes.io/serviceaccount
TOKEN=$(cat $SADIR/token)
CACERT=$SADIR/ca.crt
NAMESPACE=$(cat $SADIR/namespace)
Подключаемся к API
curl -H "Authorization: Bearer $TOKEN" --cacert $CACERT $K8S/api/v1/
В случае с minikube может быть другой адрес и порт, который можно взять здесь
cat ~/.kube/config
или здесь
kubectl cluster-info
Подключение к api kubernetes успешно, авторизация с использованием токена сервис-аккаунта ($TOKEN) и корневого сертификата кластера $CACERT.
curl -H "Authorization: Bearer $TOKEN" --cacert $CACERT $K8S/api/v1/