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指的是创建的pod
#--dry-run是模拟运行
#-o yaml指的是以yaml格式输出
标准模板示例
# api版本
apiVersion: v1
# 类型,当前为pod
kind: Pod
# 该模板元数据
metadata:
# pod标签定义
labels:
run: xx
# pod名字
name: xx
# pod规格定义
spec:
# 定义容器
containers:
# 定义容器的镜像
- image: nginx
# 定义容器的镜像下载策略
imagePullPolicy: IfNotPresent
# 定义容器的名称
name: xx
# 定义容器的资源
resources: {}
# pod的dns策略
dnsPolicy: ClusterFirst
# pod的重启策略
restartPolicy: Always
镜像下载策略
- Always 不管本地有没有该镜像,每次都要重新下载
- Nerver 只是用本地镜像,不会去下载
- IfNotPresent 本地没有的时候才会下载
常用命令
进入pod执行交互命令
进入名称为web的pod执行命令
kubectl exec web -it bash
进入名称为web的pod中名称为weby的container中执行命令
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在创建时可以先初始化
查看字段
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"