跳到主要内容

第5章 Pod基础

1.什么叫Pod

POD内的容器使用container模式共享根容器的网络

容器看到的网络设备信息和根容器完全相同

POD内的多个容器可以直接使用localhost通信

POD内的多个容器不能绑定相同的端口

POD的生命周期和根容器一样,如果根容器推出,POD就退出了

直接创建的Pod资源类型是不受Pod副本控制器影响的,简单来说就是删了就没了,不会自动创建

2.Pod原理

1)Pod的组成

业务容器+根容器=POD

业务容器共享根容器的网络和文件系统

2)共享网络空间

1724740710757-2f9a7689-2658-4161-b9a2-d9c4c29bac5e.png

3)共享文件系统

1724740715811-66948696-7856-4b75-aa44-29b0281b5040.png

3.使用命令行形式创建一个Pod

kubectl create pod nginx --image=nginx

4.使用资源配置清单创建Pod

体验一下使用资源配置清单创建Pod:

cat > nginx-pod.yaml << 'EOF'
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
EOF

资源配置清单解释:

apiVersion: v1		#k8s资源的版本号
kind: Pod #要创建的资源类型pod,deployment...
metadata: #元数据,存在ETCD里的,不能重复,唯一标识这个资源
name: nginx #资源名称,必须写,不能重复
labels: #标签,非常重要
app: nginx #自定义 标签名:值
spec: #POD的具体配置
containers: #容器的具体配置
- name: nginx #容器名
imagePullPolicy: IfNotPresent #镜像拉取策略,always,IfNotPresent
image: nginx #镜像

应用资源配置:

kubectl apply -f nginx-pod.yaml

查看Pod创建情况:

kubectl get pod
kubectl get pod -o wide

查看Pod详细信息:

kubectl describe pod nginx

5.学习查看资源配置清单

第一种方法:看命令行帮助说明

kubectl explain pod
kubectl explain pod.metadata
kubectl explain pod.spec
kubectl explain pod.spec.containers

第二种方法:看官方文档

https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/

第三种方法:看官方文档

https://k8s.mybatis.io/v1.27/

6.Pod相关命令

kubectl get pod
kubectl get pod -o wide
kubectl apply -f nginx-pod.yaml
kubectl delete -f nginx-pod.yaml

kubectl create pod nginx-pod --image=nginx
kubectl create deployment nginx-dp --image=nginx --replicas=3

kubectl scale dp nginx-dp --replicas=5
kubectl set image dp nginx-dp nginx-dp=nginx:1.27.0

更新: 2024-08-28 13:48:16