Kubectl 自動補全
# 自動補全腳本
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
# 把 kubectl 簡化成 k
alias k=kubectl
complete -o default -F __start_kubectl k
–all-namespaces 替代
建立物件
kubectl apply -f ./my-manifest.yaml # 建立資源
kubectl apply -f ./my1.yaml -f ./my2.yaml # 建立資源從多個檔案
kubectl apply -f ./dir # 建立資源從資料夾
kubectl apply -f https://example.com/manifest.yaml # 建立資源從網路
kubectl create deployment nginx --image=nginx # 建立 nginx deployment
# 建立 Job 印出 "Hello World"
kubectl create job hello --image=busybox:1.28 -- echo "Hello World"
# 建立 CronJob 印出 "Hello World" 每分鐘
kubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo "Hello World"
kubectl explain pods # 讀 pod 的文件
# 從命令行以YAML建立一個物件
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep
spec:
containers:
- name: busybox
image: busybox:1.28
args:
- sleep
- "1000000"
---
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep-less
spec:
containers:
- name: busybox
image: busybox:1.28
args:
- sleep
- "1000"
EOF
# 從命令行建立 secret
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: $(echo -n "s33msi4" | base64 -w0)
username: $(echo -n "jane" | base64 -w0)
EOF
Scaling 資源
kubectl scale --replicas=3 rs/foo
kubectl scale --replicas=3 -f foo.yaml
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # 假如 deployment mysql's current size is 2, scale mysql 到 3
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Scale 多個資源