k8s中的Pod

理解Pod在这里插入图片描述

运行中的一组容器,Pod是kubernetes中应用的最小单位。

每个Pod,k8s都会分配给它一个IP,IP的范围是由之前主节点初始化时设置:

kubeadm init \
--apiserver-advertise-address=172.31.0.2 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16

集群中任意机器以及任意应用都可以通过Pod分配的ip来访问这个Pod。

一个Pod可以有多个容器:
在这里插入图片描述

操作Pod

  • 使用命令行操作Pod:
# 默认在default名称空间
kubectl run mynginx --image=nginx
# 查看default名称空间的Pod
kubectl get pod
# 查看描述
kubectl describe pod Pod名
# 使用docker命令可以看出只有对应节点下载并运行nginx镜像
docker ps|grep mynginx
docker images
# 查看Pod的运行日志
kubectl logs mynginx
# 删除Pod
kubectl delete pod mynginx -n 名称空间
# 查看更详细的Pod信息
kubectl get pod -owide
# 使用Pod的ip+Pod里面运行容器的端口访问应用
curl 192.168.169.136
# 进入容器里修改文件
kubectl exec -it mynginx -- /bin/bash
  • 使用YAML文件创建Pod:

pod.yaml

apiVersion: v1
kind: Pod
metadata: 
  labels: 
    run: mynginx
  name: mynginx
spec:
  containers:
  - image: nginx
    name: mynginx
kubectl apply -f pod.yaml
kubectl delete -f pod.yaml
  • 可以使用可视化界面操作

多容器Pod操作

使用资源配置文件创建Pod:
multicontainer-pod.yaml

apiVersion: v1
kind: Pod
metadata: 
  labels:
    run: myapp
  name: myapp
spec:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:8.5.68
    name: tomcat
kubectl apply -f multicontainer-pod.yaml

在这里插入图片描述
同一Pod的两个容器共享网络空间和存储。同一Pod的多个容器不能占用同一端口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值