Создание приложений с использованием CLI
kubectl
— это основной интерфейс командной строки (CLI) для взаимодействия с кластерами Kubernetes. Он функционирует как клиент для Kubernetes API Server — RESTful HTTP API, который служит программным интерфейсом управляющей плоскости. Все операции Kubernetes доступны через API endpoints, и kubectl
фактически преобразует команды CLI в соответствующие API-запросы для управления ресурсами кластера и рабочими нагрузками приложений (Deployments, StatefulSets и др.).
Инструмент CLI облегчает развертывание приложений, интеллектуально интерпретируя входные артефакты (образы, Chart и т. п.) и создавая соответствующие объекты Kubernetes API. Создаваемые ресурсы зависят от типа входных данных:
- Image: напрямую создаёт Deployment.
- Chart: создаёт все объекты, определённые в Helm Chart.
Содержание
Предварительные требования
Плагин Alauda Container Platform Web Terminal установлен, и переключатель web-cli включён.
Процедура
-
В Container Platform нажмите на иконку терминала в правом нижнем углу.
-
Дождитесь инициализации сессии (1–3 секунды).
-
Выполните команды kubectl в интерактивной оболочке:
kubectl get pods -n ${CURRENT_NAMESPACE}
-
Просматривайте вывод команд в реальном времени
Пример
YAML
# webapp.yaml
apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
name: webapp
spec:
componentKinds:
- group: apps
kind: Deployment
- group: ""
kind: Service
descriptor: {}
# webapp-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
labels:
app: webapp
env: prod
spec:
replicas: 3
selector:
matchLabels:
app: webapp
template:
metadata:
labels:
app: webapp
tier: frontend
spec:
containers:
- name: webapp
image: nginx:1.25-alpine
ports:
- containerPort: 80
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "250m"
memory: "256Mi"
---
# webapp-service.yaml
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
selector:
app: webapp
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
Команды kubectl
kubectl apply -f webapp.yaml -n {CURRENT_NAMESPACE}
kubectl apply -f webapp-deployment.yaml -n {CURRENT_NAMESPACE}
kubectl apply -f webapp-service.yaml -n {CURRENT_NAMESPACE}
Справка