Creating applications by using 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 中定义的所有对象。
目录
Prerequisites
已安装 Alauda Container Platform Web Terminal 插件,并启用了 web-cli 开关。
Procedure
-
在 Container Platform 中,点击右下角的终端图标。
-
等待会话初始化(1-3 秒)。
-
在交互式 shell 中执行 kubectl 命令:
kubectl get pods -n ${CURRENT_NAMESPACE}
- 查看实时命令输出
Example
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 commands
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}
Reference