1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kusionstack-kusion-in-action-book

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ch2.2-apply.md 8.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 07:05 e316555

2.2 Apply 子命令

Kusion предоставляет apply 子команду, которая позволяет применить серию ресурсов из текущего стека во время выполнения. Она создаёт, обновляет или удаляет ресурсы на основе файлов KCL в стеке Konfig. Подобно другим подобным командам, таким как kubectl apply и terraform apply, apply обычно используется для активации конфигурационных операций в системах с декларативным интерфейсом. Это основная функция Kusion. В этом разделе рассматривается базовое использование kusion apply команды.

2.2.1 Просмотр справки по команде 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).

2.2.2 Просмотр информации об изменениях с помощью команды 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:

![](../images/ch2.2-guestbook.png)

Это означает, что служба работает нормально.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/kusionstack-kusion-in-action-book.git
git@api.gitlife.ru:oschina-mirror/kusionstack-kusion-in-action-book.git
oschina-mirror
kusionstack-kusion-in-action-book
kusionstack-kusion-in-action-book
main