Creating Applications by using the CLI
kubectl
is the primary command-line interface (CLI) for interacting with Kubernetes clusters. It functions as a client for the Kubernetes API Server - a RESTful HTTP API that serves as the control plane's programmatic interface. All Kubernetes operations are exposed through API endpoints, and kubectl
essentially translates CLI commands into corresponding API requests to manage cluster resources and application workloads (Deployments, StatefulSets, etc.).
The CLI tools facilitates application deployment by intelligently interpreting input artifacts (images, or Chart, etc.) and generating corresponding Kubernetes API objects. The generated resources vary based on input types:
- Image: Directly creates Deployment.
- Chart: Instantiates all objects defined in the Helm Chart.
Prerequisites
The ACP Web Terminal plugin is installed, and the web-cli switch is enabled.
Procedure
-
Contianer Platform, click the terminal icon in the lower-right corner.
-
Wait for session initialization (1-3 sec).
-
Execute kubectl commands in the interactive shell:
kubectl get pods -n ${CURRENT_NAMESPACE}
- View real-time command output
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