Перед началом работы пользователю необходимо настроить Kusion Tool и Konfig Config Library. Инициализация проекта заключается в добавлении кода в библиотеку Konfig.
Шаг 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.
Просмотрите базовую конфигурацию в каталоге 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 )