一个过程
kubernetes创建一个pod资源至少拉起两个容器,kubelet操作docker,创建一个业务容器,一个pod容器。pod容器支持k8s的高级用法。
两个容器统称一个pod资源,使用container网络类型绑定。
查询containerIP地址
docker inspect <containerID> | grep -i Ipaddress
kubectl查询工具的使用
kubectl explain pod # 显示可选项
kubectl explain pod.spec.container # 更细粒度的显示可选项
container yaml 参数
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
app: web
spec:
containers:
- name: nginx #yaml文件中的短横线表示 这是一个列表资源
image: ${dockerhub addr}/nginx:1.13
ports:
- containerPort: 80
- name: busybox
image: ${dockerhub addr}/busybox:latest
command: ["sleep", "3600"]
ports:
- contanierPort: 80
因为busybox没有镜像更新策略,即使本地有镜像,tag填写的是latest,默认会去dockerhub检查镜像是否有更新,如果网络不连通,镜像拉取不成功pod就拉不起来。
所以在container中加新的属性imagePullPolicy,查询取值范围和填写规范可用语句:
kubectl explain pod.spec.container.imagePullPolicy
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
app: web
spec:
containers:
- name: nginx
image: ${dockerhub addr}/nginx:1.13
ports:
- containerPort: 80
- name: busybox
image: ${dockerhub addr}/busybox:latest
command: ["sleep", "3600"]
imagePullPolicy: IfNotPresent # 本地没有才去拉取
ports:
- contanierPort: 80
kubectl 操作pod语句
# 创建
kubectl create -f xxxx.yaml
# 删除
kubectl delete ${podName}
# 强制删除
kubectl delete ${podName} --force --grace-period=0
# 删除所有pod
kubectl delete pod --all
# 查看pod
kubectl get pods
# 查看pod更多信息
kubectl get pod -o wide
# 更新pod
先修改yaml文件
kubectl apply -f xxxx.yaml
# pod查看拉起详细描述
kubectl describe pod ${podName}
# 拷贝文件到pod中
kubectl cp ${被拷贝文件名} ${podname}:${拷贝到的路径}