Kubernetes (一)Pod

本文探讨了Kubernetes中Pods的概念及其优势,详细解析了Pods如何通过共享infra基础容器实现对多个容器的统一管理,以及如何利用YAML配置文件定义复杂的容器间关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

apiVersion: apps/v1
kind: Deployment
metadata:
    name: deployment-nginx
    namespace: default
spec:
    replicas: 2
    selector:
        matchLabels:
           app: deloyment-nginx
           release: canary
    strategy:
        rollingUpdate:
            maxSurge: 2
            maxUnavailable: 2
    template:
        metadata:
           labels:
             app: deloyment-nginx
             release: canary
        spec:
           shareProcessNamespace: true
           containers:
             - name: ngin1
               image: nginx
               lifecycle:
                   postStart:
                        exec:
                          command: ["/bin/sh","-c","echo welecome_nginx1 >/usr/share/nginx/html/index.html "]
             - name: shell
               image: busybox
               tty: true
               stdin: tru

简单点,就是pods看做一个虚拟机,pods内的所有container看做部署在虚拟机上进程,
pods的组成基于共享一个infra基础容器的名称空间的基础上,共享同一个Network Namespace,同时可以声明共享同一个Volume。这就是pods优先于但容器管理的优势,在docker中
可以使用docker run --net=B --volume-from=B --name=A ,但是B要优先于A启动,才会有A,
而在kubenetes中,因为有了pods的概念,有了infra的基础容器的优先启动,所以优于但容器的管理。
在pods中,一般按照“超亲密关系”的方式去设计容器:比如tomact和war包 (用到initContainer),日志的采集,以及上面yaml资源中的nginx1和shell两个container共享同一个ProcessNamespace:

     shareProcessNamespace: true
           containers:
             - name: ngin1
               image: nginx
               lifecycle:
                   postStart:
                        exec:
                          command: ["/bin/sh","-c","echo welecome_nginx1 >/usr/share/nginx/html/index.html "]
             - name: shell
               image: busybox
               tty: true
               stdin: tru
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值