Thank you for reading this post, don't forget to subscribe!
Конфигурации Kubernetes обычно записываются в файлах YAML, и часто бывает сложно запомнить конкретный синтаксис.
Еще хуже то, что трудно запомнить, какой apiVersion использовать для каждого ресурса.
В этой статье я расскажу о нескольких методах быстрого создания и применения deployment новых манифестов YAML.
Шаблон Deployment (развертывания) YAML
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: apps/v1 kind: Deployment metadata: name: hello-world-deployment spec: replicas: 3 selector: matchLabels: app: hello-world-app template: metadata: labels: app: hello-world-app spec: containers: - image: gcr.io/my-project/hello-world-app name: hello-world-app ports: - containerPort: 80 |
[/codesyntax]
Использование Kubectl для создания манифеста развертывания
Мы можем сгенерировать новый манифест развертывания, используя команду kubectl run.
В следующем примере будет создан новый манифест развертывания для вашего кластера Kubernetes.
1 |
kubectl create deployment hello-world-deployment --image<span class="token operator">=</span>hello-world-app:1.0.0 --dry-run -o yaml |
Первый флаг запрещает kubectl отправлять запрос на api-контроллер Kuberentes, а второй флаг указывает, что вывод должен быть отформатирован в YAML.
После выполнения на ваш экран будет выведено следующий вывод, который вы можете при желании передать в файл.
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: hello-world-deployment name: hello-world-deployment spec: replicas: 1 selector: matchLabels: app: hello-world-deployment strategy: {} template: metadata: creationTimestamp: null labels: app: hello-world-deployment spec: containers: - image: hello-world-app name: hello-world-app resources: {} status: {} |
[/codesyntax]
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: apps/v1 kind: Deployment metadata: name: hello-world-deployment spec: replicas: 3 selector: matchLabels: app: hello-world-deployment strategy: {} template: metadata: labels: app: hello-world-deployment spec: containers: - image: hello-world-app name: hello-world-app |
[/codesyntax]
Применение вашего манифеста в кластере Kubernetes
Для создания развертывания в вашем кластере Kubernetes вам нужно будет выполнить команду kubectl apply.
1 |
kubectl apply -f hello-world-deployment.yml |