Я рыл через документацию Kubernetes в течение многих часов. Я понимаю базовый дизайн и понятие сервисов, контроллеров, переходных приставок, и т.д.
То, что я не понимаю, однако, является процессом, в котором я могу декларативно настроить кластер. Таким образом, путь ко мне для записи файла конфигурации (или набор этого) для определения состава и масштабирующихся опций облачного развертывания. Я хочу смочь объявить, какие контейнеры я хочу, в которых переходных приставках, как они свяжутся, как они масштабируются, и т.д. не выполняя тонну команд CLI.
Есть ли докер - составляют функциональность для Kubernetes?
Я хочу, чтобы мое приложение было определено в мерзавце — чтобы быть версией, которой управляют – не полагаясь на руководство cli взаимодействия.
Действительно ли это возможно сделать кратким способом? Существует ли ссылка, которая более ясна, чем официальная документация?
Докер официально объявил docker-compose
функциональность для kubernetes кластера. Так с этого времени можно составить kubernetes ресурсы в файле и применить их использующий что единственный файл.
Первый мы должны установить Составление на контроллере Kubernetes в Ваш кластер Kubernetes. Этот контроллер использует стандартные точки расширения Kubernetes для представления Stack
API Kubernetes. Проверьте, что полная документация для установки докера составляет контроллер:
Позволяет нам записать, что простое составляет yaml файл:
version: "3.7"
services:
web:
image: dockerdemos/lab-web
ports:
- "33000:80"
words:
image: dockerdemos/lab-words
deploy:
replicas: 3
endpoint_mode: dnsrr
db:
image: dockerdemos/lab-db
We’ll затем используют клиент докера для развертывания этого на кластере Kubernetes выполнение контроллера:
$ docker stack deploy --orchestrator=kubernetes -c docker-compose.yml words
Waiting for the stack to be stable and running...
db: Ready [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
web: Ready [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
words: Ready [pod status: 1/3 ready, 2/3 pending, 0/3 failed]
Stack words is stable and running
Мы можем затем взаимодействовать с теми объектами через API Kubernetes. Здесь Вы видите, что we’ve создал объекты низшего уровня как Сервисы, Переходные приставки, Развертывание и ReplicaSets автоматически:
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.apps/db 1 1 1 1 57s
deployment.apps/web 1 1 1 1 57s
deployment.apps/words 3 3 3 3 57s
It’s важный, чтобы отметить, что этот isn’t одноразовое преобразование. Составление на Сервере API Kubernetes представляет ресурс Стека API Kubernetes. Таким образом, мы можем запросить и управлять всем на том же уровне абстракции как we’re создавание приложения. Это превращает копание в деталях выше полезного для понимания, как вещи работают, или отладка проблем, но не требуемые большую часть времени:
$ kubectl get stack
NAME STATUS PUBLISHED PORTS PODS AGE
words Running 33000 5/5 4m