Rate this post

Для управления K8S используется утилита kubectl. Настройки можно указывать прямо в командной строке или использовать заранее подготовленный YAML/JSON-файл. Чтобы было проще вводить команды, укажем в переменной PATH,где ее искать.n

$ export PATH=$PATH:~/kubernetes/cluster/ubuntu/binaries

Для удобства лучше строку прописать сразу в ~/.bash_profile. Два подкаталога — master, minion в ubuntu/binaries содержат утилиты для настройки мастера и подчиненных узлов. Все операции реализуются указанием одного из 20 ключей, список которых можем получить, введяn

$ kubectl --help

СмотримnnkuberctlnnСмотрим список нод, настройки и данные кластера.n

$ kubectl get nodesn$ kubectl cluster-infon$ kubectl config

В ответ должны получить список указанных ранее в config-default.sh узлов. Запустим контейнер с nginx:n

$ kubectl run nginxtest --image=nginx --port=80 --hostport=81

K8S сам загрузит и установит образ. Через время к nginx можно обратиться, подключившись на 81-й порт. Если нод несколько и нам нужна балансировка, может указываться параметр —create-external-load-balancer и указывается количество реплик —replicas=№. Текущее состояние репликации выводится командой kubectl get rc. Возможно заранее прописать настройки контейнера в файле, который затем использовать при азвертывании командой create:n

$ kubectl create -f nginx.yaml

Если файлов много, то просто указывается каталог, в котором они находятся.nДалее создаем сервис:n

$ kubectl expose rc nginx --port=80 --target-port=80 --service-name=nginx -s "http://192.168.1.2:8080"

Теперь можем проверить доступные сервисы и POD.n

$ kubectl get pods

В ответ получим имя (по которому можем обращаться к POD), состояние и возраст.n

$ kubectl get services

kuberctlnnЕсли нужно выполнить команду внутри контейнера, то используем kubectl exec. Kubectl позволяет обращаться к некоторым ресурсам сразу по имени. В настоящее время доступно 19 типов ресурсов, все они описаны в документации к kubectl. Когда информации много, можно форматировать вывод при помощи -o, отбирая произвольные колонки, или вывести в JSON/YAML-формате для дальнейшей обработки. Например, выведем в расширенном формате список нод и сервисов:n

$ kubectl get rc,services -o=wide

Веб-интерфейс доступен по адресу https://<K8S-host>/ui, пароль для входа можно посмотреть в выводе kubectl config view. Если он не работает, следует установить его последнюю стабильную версию.n

$ kubectl create -f nhttps://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml