首页 > 其他分享 >Pod多容器

Pod多容器

时间:2023-02-10 21:45:43浏览次数:33  
标签:容器 container name demo envoy yaml address Pod

init容器

[root@master k8s]# kubectl apply -f init-container-demo.yaml 
[root@master k8s]# cat init-container-demo.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: init-container-demo
  namespace: default
spec:
  initContainers:
  - name: iptables-init
    image: ikubernetes/admin-box:latest
    imagePullPolicy: IfNotPresent
    command: ['/bin/sh','-c']
    args: ['iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80']
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
  containers:
  - name: demo
    image: ikubernetes/demoapp:v1.0
    imagePullPolicy: IfNotPresent
    ports:
    - name: http
      containerPort: 80

init容器执行完后会自动退出

[root@master k8s]# kubectl get pods
NAME                      READY   STATUS    RESTARTS        AGE
init-container-demo       1/1     Running   0               177m

 

SideCar容器

先创建一个configmap envoy

[root@master k8s]# kubectl apply -f configmap-envoy.yaml 
configmap/configmap-envoy unchanged
[root@master k8s]# cat configmap-envoy.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap-envoy
data:
    envoy.yaml: |
        admin:
          access_log_path: /tmp/admin_access.log
          address:
            socket_address: { address: 0.0.0.0, port_value: 9901 }

        static_resources:
          listeners:
          - name: listener_0
            address:
              socket_address: { address: 0.0.0.0, port_value: 80 }
            filter_chains:
            - filters:
              - name: envoy.http_connection_manager
                config:
                  stat_prefix: ingress_http 
                  codec_type: AUTO 
                  route_config:
                    name: local_route
                    virtual_hosts:
                    - name: local_service 
                      domains: ["*"] 
                      routes:
                      - match: { prefix: "/" }
                        route: { cluster: local_service }
                  http_filters:
                  - name: envoy.router
          clusters:
          - name: local_service
            connect_timeout: 0.25s 
            type: STATIC
            lb_policy: ROUND_ROBIN 
            load_assignment:
              cluster_name: local_service
              endpoints:
              - lb_endpoints:
                - endpoint:
                    address:
                      socket_address:
                        address: 127.0.0.1
                        port_value: 8080

创建Pod

[root@master k8s]# kubectl apply -f sidecar-container-demo.yaml 
[root@master k8s]# cat sidecar-container-demo.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: sidecar-container-demo
  namespace: default
spec:
  containers:
  - name: proxy
    image: envoyproxy/envoy-alpine:v1.14.1
    command: ['/bin/sh','-c']
    args: ['sleep 5 && envoy -c /etc/envoy/envoy.yaml']
    volumeMounts:
    - name: config
      mountPath: "/etc/envoy/envoy.yaml"
      subPath: envoy.yaml
  - name: demo
    image: ikubernetes/demoapp:v1.0
    imagePullPolicy: IfNotPresent
    env:
    - name: HOST
      value: "127.0.0.1"
    - name: PORT
      value: "8080"
  volumes:
  - name: config
    configMap:
      name: configmap-envoy
      items:
      - key: "envoy.yaml"
        path: "envoy.yaml"

curl访问这个Pod,可以看到是envoy响应的

访问envoy测试

curl  10.244.104.26:9901
curl  10.244.104.26:9901/stats
curl  10.244.104.26:9901/help
curl  10.244.104.26:9901/clusters

 

标签:容器,container,name,demo,envoy,yaml,address,Pod
From: https://www.cnblogs.com/zyyang1993/p/17110198.html

相关文章

  • SpringMVC源码(二):MVC容器启动
    SpringMVC是一个基于Java实现了MVC设计模式的请求驱动类型的轻量级Web框架,SpringMVC是在Spring框架的基础上做的拓展。一、分析思路在使用配置文件的方式设置Spr......
  • ACP云原生容器工程师-ACK Pro概述
    ACKPro集群概述对比ACK托管版集群相比ACK托管版,针对企业版大规模生产环境进一步增强了可靠性、安全性继承了原托管版集群的所有优势提供可赔付的SLA的Kubernete......
  • 容器技术之容器镜像编排
    本章探讨Docker容器技术之镜像编排---Dockerfile1.Dockerfile语法2.制作apache镜像httpd.service文件路径:/lib/systemd/system/httpd.service拷贝测试网页文件public/inf......
  • Docker Compose容器编排
    一、Docker-Compose1.1、什么是DockerComposeCompose项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码在https://github.com/docker/compo......
  • 【3】.NET6最通俗易懂的依赖注入之服务容器与作用域
    这篇文章是ASP.NET6依赖注入系列文章的第3篇。在上一篇文章中,我们讨论依赖注入的基本用法与生命周期。接下来,在这篇文章中,我们继续深入了解服务容器相关的概念。服......
  • docker容器磁盘空间查看命令和清理删除没有使用容器的命令和方法
    【问题描述】在服务器上面启动MQTT服务的时候,一直失败,之前是可以正常启动成功的。  【原因描述】开始以为是服务本地的问题或者是依赖包的问题,但是该安装包并没有......
  • K3s将Pod指派给节点
    查看所有节点:kubectlgetnode--show-labels或者kubectlgetpods-owide(此命令需要先启动服务)  或者 给主机(节点)打标签:语法:kubectllabelnodes<node......
  • 云原生场景下,如何缓减容器隔离漏洞,监控内核关键路径?
    导读:OpenCloudOS社区是由操作系统、软硬件厂商与个人共同倡议发起的操作系统社区项目,提供自主可控、绿色节能、安全可靠、高性能的下一代云原生操作系统,与生态伙伴一起打造......
  • EL-DRAWER 父容器设置
    element-ui的官网中,关于el-drawer的例子都是在body中打开,我的项目需求中,需要在某个DIV中打开。参考了网上的例子,实现了此功能,记录一下父容器的div中,设置:style="position:......
  • 趣学前端 | 容器上的折角边框是图形吗?
    背景我身边一些非互联网技术从业的朋友,偶尔看我转发到朋友圈的文章,会表示出一定的兴趣。前段时间,有朋友问我公众号的问题,所以我来了灵感,准备写一个趣学前端系列,适用于零基础......