yaml文件字段
- kubectl explain --help
- kubectl explain pods.spec.containers
yaml模板
獲取
kubectl run xx --image=nginx --generator=run-pod/v1 --dry-run -o yaml > pod.yaml
#--generator=run-pod/v1指的是創(chuàng)建的pod
#--dry-run是模擬運行
#-o yaml指的是以yaml格式輸出
標準模板示例
# api版本
apiVersion: v1
# 類型,當前為pod
kind: Pod
# 該模板元數(shù)據(jù)
metadata:
# pod標簽定義
labels:
run: xx
# pod名字
name: xx
# pod規(guī)格定義
spec:
# 定義容器
containers:
# 定義容器的鏡像
- image: nginx
# 定義容器的鏡像下載策略
imagePullPolicy: IfNotPresent
# 定義容器的名稱
name: xx
# 定義容器的資源
resources: {}
# pod的dns策略
dnsPolicy: ClusterFirst
# pod的重啟策略
restartPolicy: Always
鏡像下載策略
- Always 不管本地有沒有該鏡像,每次都要重新下載
- Nerver 只是用本地鏡像,不會去下載
- IfNotPresent 本地沒有的時候才會下載
常用命令
進入pod執(zhí)行交互命令
進入名稱為web的pod執(zhí)行命令
kubectl exec web -it bash
進入名稱為web的pod中名稱為weby的container中執(zhí)行命令
kubectl exec web -c weby -it bash
查看pod的屬性
kubectl describe pod web
查看pod日志
查看名稱為web的pod的日志
kubectl logs web
實時查看名稱為web的pod中名稱為weby的container的日志
kubectl logs -f web -c weby
刪除pod
通過名稱刪除
kubectl delete pod web
通過yaml文件刪除
kubectl delete -f web.yaml
容器初始化
某些pod在創(chuàng)建時可以先初始化
查看字段
kubectl explain pod.spec.initContainers
小例子
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
volumes:
- name: workdir
emptyDir: {}
containers:
- name: podx
image: nginx
volumeMounts:
- name: workdir
mountPath: "/xx"
initContainers:
- name: poda
image: busybox
command: ['sh','-c','touch /work-dir/aa.txt']
volumeMounts:
- name: workdir
mountPath: "/work-dir"