Управляем кластером контейнеров
Для управления всеми настройками K8S, а также pods, сервисами и прочим используется утилита kubectl. Все операции реализуются указанием одного из 20 ключей, список которых можем получить, введя —help или на сайте проекта:
1 |
$ kubectl --help |
В самом простом случае настройки можно указывать в командной строке. Запустим контейнер с nginx:
1 |
$ kubectl run -mynginx --image=nginx --port=80 --hostport=80 |
K8S сам загрузит и установит образ. Через время к nginx можно обратиться, подключившись на 80-й порт. Список IP, выданных подам:
1 |
$ kubectl get pods -o yaml | grep podIP |
Выставляем в качестве сервиса:
1 |
$ kubectl expose deployment my-nginx --target-port=80 --type=LoadBalancer |
В команде kubectl expose возможно использование ресурсов: pod (po), service (svc), replicationcontroller (rc),
deployment (deploy), replicaset (rs).
Масштабирование:
1 |
$ kubectl scale deployment my-nginx --replicas=2 |
Текущее состояние репликации выводится командой kubectl get rc или kubectl get services, если создавался сервис. Выведем в расширенном формате список нодов и сервисов:
1 |
$ kubectl get rc,services -o=wide |
Отбор с учетом меток (labels):
1 |
$ kubectl get services -l "app=nginx,role=master,tier=frontend" |
Информация о конкретном сервисе:
1 |
$ kubectl describe svc frontend |
Удалить pod нельзя, он сразу восстановит работу. Нужно вначале остановить сервис, deployment …, а потом уже удалить сам под:
1 2 |
$ kubectl delete deployment my-nginx $ kubectl delete my-nginx-5489078-xt4 --now |
Но обычно используют заранее подготовленный YAMLфайл, который позволит быстро запускать, останавливать и обновлять контейнеры. Возможно заранее прописать настройки контейнера
в файле, который затем использовать при развертывании командой create:
1 |
$ kubectl create -f nginx.yaml |
Если файлов много, то просто указывается каталог, в котором они находятся. Утилиты Docker при работе с K8S использовать не рекомендуется. Для выполнения команды внутри контейнера применяем kubectl exec.
Kubernetes достаточно интересный проект, и хотя первое знакомство обычно проходит тяжело, в первую очередь это связано с плохой документацией, со временем начинаешь видеть плюсы и становишься сторонником этого решения.
Наши администраторы могут установить кластер управления контейнером для вашей архитектуры, [email protected]
Pingback : Комплексная автоматизация: Ansible + OpenStack » Администрирование серверов