K8S实战之理解Pod

本文通过两个实验详细介绍了Kubernetes Pod的基本概念。实验一验证了Pod内的容器共享同一网络命名空间,允许它们通过127.0.0.1或socket直接通信。实验二展示了Pod如何实现数据共享,通过创建一个Pod,两个容器分别进行读写操作,实现实时数据交互。这些实验突显了Pod作为最小部署单元在应用协同和数据共享方面的优势。
摘要由CSDN通过智能技术生成

1.Pod基本概念

Pod 存在的意义pod为亲密性应用而存在

两个容器之间发生文件交互的容器,
两个应用需要通过127.0.0.1或者socket通信(共享网络)  
两个应用需要频繁发生调用

最小的部署单元:以Pod为最小原子调度
一组容器的集合一个pod可以运行多个容器

实验一:验证pod共享网络

cat 123.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: my-pod
  name: my-pod
  namespace: default
spec:
  containers:
  - image: nginx
    name: nginx              #创建容器一
    image: nginx
  - image: java-demo
    name: java               #创建容器二
    image: zhangfan5391621/java-demo:latest

创建pod

kubectl apply  -f 123.yaml     
kubectl exec -it  my-pod -c  java bash   #进入容器查看网络

在这里插入图片描述

kubectl exec -it  my-pod -c  nginx  bash   #进入第二个容器

在这里插入图片描述
会发现 两个容器都是同一个ip,说明一个pod下所有的容器都是共享网络,个pod中的容器共享网络命名空间

实验二:验证pod共享数据存储

cat aaa.yaml

apiVersion: v1  
kind: Pod
metadata:
  name: my-pod-vs
spec:
  containers:
  - name: write
    image: centos:7
    command: ["bash","-c","for i in {1..100};do echo $i >> /data/hello;sleep 1;done"]
    volumeMounts:
      - name: data
        mountPath: /data
  - name: read
    image: centos:7
    command: ["bash","-c","tail -f  /data/hello"]
    volumeMounts:
      - name: data
        mountPath: /data

  volumes:
  - name: data
    emptyDir: {}

kubectl exec -it my-pod-vs -c write bash
在这里插入图片描述
kubectl logs -f my-pod-vs -c read
在这里插入图片描述
可以看到一个容器在写数据一个容器在度数据,pod之间的数据实时共享
生命周期是短暂的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值