• Русский
  • Создание приложений с помощью 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 включён.

    Процедура

    1. В Container Platform нажмите на иконку терминала в правом нижнем углу.

    2. Дождитесь инициализации сессии (1-3 секунды).

    3. Выполните команды kubectl в интерактивной оболочке:

      kubectl get pods -n ${CURRENT_NAMESPACE}
    4. Просматривайте вывод команд в реальном времени

    Пример

    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}

    Справка