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

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

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

2.1 Инициализация проекта

Перед началом работы пользователю необходимо настроить Kusion Tool и Konfig Config Library. Инициализация проекта заключается в добавлении кода в библиотеку Konfig.

2.1.1 Выполнение команды init

Шаг 1: Перейдите в командную строку, соответствующую каталогу Konfig/appops, и введите команду kusion init для инициализации проекта:

$ kusion init
Use the arrow keys to navigate: ↓ ↑ → ← 
? This command will initialize KCL file structure and base codes for a new project.Please choose a KCL schema type: 
  ▸ Server

Выберите тип проекта: на данный момент доступен только один тип — Server. Нажмите Enter для подтверждения. Затем введите имя проекта:

Use the arrow keys to navigate: ↓ ↑ → ← 
✔ Server
✔ project name: █emo

Например, введите demo и нажмите Enter. Затем введите название стека (stack — это категория, созданная для удобства управления большим количеством облачных приложений):

Use the arrow keys to navigate: ↓ ↑ → ← 
✔ Server
project name: demo
stack name: █ev

Затем выберите имя кластера по умолчанию:

Use the arrow keys to navigate: ↓ ↑ → ← 
✔ Server
project name: demo
stack name: dev
✔ cluster name: █efault
cluster name: █efault

Наконец, укажите образ:

Use the arrow keys to navigate: ↓ ↑ → ← 
✔ Server
project name: demo
stack name: dev
✔ cluster name: █efault
✔ image: █cr.io/google-samples/gb-frontend:v4

После завершения инициализации будет создан каталог demo, содержащий следующие файлы и каталоги:

$ cd demo
$ tree .
.
├── README.md
├── base
│   └── base.k
├── dev
│   ├── ci-test
│   │   └── settings.yaml
│   ├── kcl.yaml
│   ├── main.k
│   └── stack.yaml
└── project.yaml

3 directories, 7 files

Теперь у нас есть полноценный проект конфигурации Kusion.

2.1.2 Понимание содержимого кода

Просмотрите базовую конфигурацию в каталоге base, где файл base/base.k содержит следующее содержимое:

import base.pkg.kusion_models.kube.frontend
import base.pkg.kusion_models.kube.frontend.container
import base.pkg.kusion_models.kube.templates.resource as res_tpl
import base.pkg.kusion_models.kube.frontend.service

# Application Configuration
appConfiguration: frontend.Server {
    # Main Container Configuration
    mainContainer = container.Main {
        name = "php-redis"
        env = [
            {
                name = "GET_HOSTS_FROM"
                value = "dns"
            }
        ]
        ports = [{containerPort = 80}]
    }
    selector = {
        "tier" = "frontend"
    }
    podMetadata.labels: {
        "tier" = "frontend"
    }
    schedulingStrategy.resource = res_tpl.medium
    services = [
        service.Service {
            name = "frontend-service"
            type = "NodePort"
            ports = [{port = 80}]
        }
    ]
}

Здесь содержатся основные настройки приложения и контейнера. Базовая конфигурация относительно проста, но обычно не требует частых изменений.

dev соответствует типу стека (другие распространённые типы включают gray для серого уровня, pre для предварительного выпуска и prod для производственной версии), который представляет конфигурацию разработки. Вход в конфигурацию находится в файле dev/main.k:

import base.pkg.kusion_models.kube.frontend
import base.pkg.kusion_models.kube.templates.resource as res_tpl

# The application configuration in stack will overwrite 
# the configuration with the same attribute in base.
appConfiguration: frontend.Server {
    image = "gcr.io/google-samples/gb-frontend:v4"
    schedulingStrategy.resource = res_tpl.tiny
}

В main.k необходимо заполнить только те параметры, которые отличаются от базовых. Например, здесь добавляется новый путь к образу после базового образа, а schedulingStrategy.resource переопределяет существующую базовую настройку.

Кроме того, в project.yaml записано имя проекта demo, а в dev/stack.yaml записан текущий тип каталога.

Опубликовать ( 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