Kusion
предоставляет apply
子команду, которая позволяет применить серию ресурсов из текущего стека во время выполнения. Она создаёт, обновляет или удаляет ресурсы на основе файлов KCL в стеке Konfig. Подобно другим подобным командам, таким как kubectl apply
и terraform apply
, apply
обычно используется для активации конфигурационных операций в системах с декларативным интерфейсом. Это основная функция Kusion
. В этом разделе рассматривается базовое использование kusion apply
команды.
apply
По умолчанию Kusion
генерирует план выполнения и предоставляет его пользователю для подтверждения перед выполнением каких-либо действий. Сначала рассмотрим справку по команде apply
:
$ kusion apply -h
Apply a series of resource changes within the stack.
Create or update or delete resources according to the KCL files within a Konfig stack. By default, Kusion will generate
an execution plan and present it for your approval before taking any action.
You can check the plan details and then decide if the actions should be taken or aborted.
Examples:
# Apply with specifying work directory
kusion apply -w /path/to/workdir
# Apply with specifying arguments
kusion apply -D name=test -D age=18
# Apply with specifying setting file
kusion apply -Y settings.yaml
# Skip interactive approval of plan details before applying
kusion apply --yes
Options:
-D, --argument=[]: Specify the arguments to apply KCL. Example: kusion apply -D name=test -D age=18 | kusion apply
--argument name=test,age=18
-d, --detail=false: Automatically show plan details after previewing it
--operator='': Specify the operator. Example: kusion apply -operator dayuan.ldy
-O, --overrides=[]: Specify the configuration override path and value
-Y, --setting=[]: Specify the command line setting files. Example: kusion apply -Y settings.yaml
-w, --workdir='': Specify the work directory.
-y, --yes=false: Automatically approve and perform the update after previewing it
Usage:
kusion apply [flags] [options]
Use "kusion apply options" for a list of global command-line options (applies to all commands).
apply
В каталоге demo/dev
введите команду kusion apply
, чтобы просмотреть план выполнения:
$ kusion apply
SUCCESS Compiling in stack dev...
Stack: dev Provider Type Name Plan
* ├─ kubernetes v1:Namespace demo Create
* ├─ kubernetes apps/v1:Deployment demodev Create
* └─ kubernetes v1:Service frontend-service Create
Use the arrow keys to navigate: ↓ ↑ → ←
? Do you want to apply these diffs?:
▸ yes
no
details
Перед выполнением переключитесь на опцию details
и нажмите Enter, чтобы просмотреть подробную информацию:
✔ details
Use the arrow keys to navigate: ↓ ↑ → ←
? Which diff detail do you want to see?:
▸ all
<kubernetes, v1:Namespace, demo> Create
<kubernetes, v1:Service, frontend-service> Create
<kubernetes, apps/v1:Deployment, demodev> Create
cancel
Можно просмотреть новые созданные ресурсы, такие как Namespace, Service и Deployment. Переключитесь на опцию all
и нажмите Enter для просмотра всех различий:
✔ details
✔ all
Provider: kubernetes
Type: apps/v1:Deployment
Name: demodev
Plan: Create
Diff:
(root level)
± type change from <nil> to map
- <nil>
+ id:
status:
attributes:
apiVersion: apps/v1
kind: Deployment
metadata:
name: demodev
namespace: demo
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/env: dev
app.kubernetes.io/instance: demo-dev
app.kubernetes.io/name: demo
cluster.x-k8s.io/cluster-name: default
tier: frontend
template:
metadata:
labels:
app.kubernetes.io/env: dev
app.kubernetes.io/instance: demo-dev
app.kubernetes.io/name: demo
cluster.x-k8s.io/cluster-name: default
tier: frontend
spec:
containers:
- env:
- name: GET_HOSTS_FROM
value: dns
- name: APP_NAME
value: demo
- name: ENVIRONMENT
value: dev
- name: INSTANCE
value: demo-dev
- name: CLUSTER
value: default
image: gcr.io/google-samples/gb-frontend:v4
name: php-redis
ports:
- containerPort: 80
protocol: TCP
resources:
``` ## 2.2.3 Выполнение плана изменений с помощью команды apply
Перед выполнением плана изменений необходимо убедиться, что можно подключиться к кластеру Kubernetes локально. Если это локальное тестирование, можно выбрать запуск встроенного кластера Kubernetes в Docker.
В каталоге dev выполните команду `$ kusion apply`, затем выберите yes для выполнения плана:
$ $ kusion apply SUCCESS Компиляция в стеке dev...
Стек: dev Провайдер Тип Имя План * ├─ kubernetes v1:Namespace demo Создать * ├─ kubernetes apps/v1:Deployment demodev Создать * └─ kubernetes v1:Service frontend-service Создать
✔ да Начало применения различий...... SUCCESS Создание Namespace/demo SUCCESS Создание Deployment/demodev SUCCESS Создание Service/frontend-service Создание Service/frontend-service [3/3] ██████████████████ 100% | 0s
Применение завершено! Ресурсы: создано 3, обновлено 0, удалено 0.
Служба успешно запущена.
## 2.2.4 Просмотр информации о службе
Службы, запущенные командой `$ kusion apply`, находятся в пространстве имён demo, которое было указано при выполнении команды `$ kusion init`. Эта информация сохраняется в файле `demo/project.yaml`.
Мы можем использовать встроенную команду kubectl от Kubernetes для просмотра созданных развёртываний:
$ kubectl get --namespace demo deploy NAME READY UP-TO-DATE AVAILABLE AGE demodev 1/1 1 1 12m
Просмотр существующих модулей:
$ kubectl get --namespace demo pods NAME READY STATUS RESTARTS AGE demodev-6c85bfcc89-w67ns 1/1 Running 0 6m45s
Проверка существующих служб:
$ kubectl get --namespace demo service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend-service NodePort 10.0.0.1 80:30083/TCP 10m
Сервис привязан к порту 30083 на хост-машине. Его можно открыть в браузере по адресу http://localhost:30083:

Это означает, что служба работает нормально.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )