通过 CLI 工具创建应用

kubectl 是与 Kubernetes 集群交互的主要命令行界面(CLI)。它作为 Kubernetes API Server 的客户端——一个 RESTful HTTP API,作为控制平面的编程接口。所有 Kubernetes 操作均通过 API 端点暴露,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. 在交互式 shell 中执行 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}

参考