IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 初始化容器与边车容器实战 8月28日实验 -> 正文阅读

[系统运维]初始化容器与边车容器实战 8月28日实验

初始化容器与边车容器实战

PS:昨天晚上学习了init container与sidecar的容器设计思路,所以今天设计了一个小实验实际操作一下,通过configmap挂载配置文件在上一篇博客

注意:

  • 初始化容器与边车容器都不能共享主容器的存储,必须通过volumeMount的挂载才能实现
  • 初始化容器执行完毕后会被终结(Terminated)

init container

实验目标:

通过初始化容器给nginx下载一个html网页,放在nginx的默认目录

废话少说,上代码

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: default
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      name: nginx-tem
      labels:
        app: nginx
    spec:
      initContainers:
      - image: busybox
        name: busybox
        command:
        - wget
        - "-O"
        - "/work/test.html"    ##下载文件的目录需要与挂载的位置相同
        - http://www.baidu.com
        volumeMounts:
        - name: work
          mountPath: "/work"   ##这里设置初始化容器挂载的位置
      containers:
      - image: nginx
        imagePullPolicy: IfNotPresent
        name: nginx-pod
        livenessProbe:  ##这里设置了一个简单的就绪探针
          exec:
            command: ["/bin/sh","-c","ls /work/test.html"]
          initialDelaySeconds: 5   ##5秒后开始检测
          periodSeconds: 3   ##3秒检测一次,便于实验
        volumeMounts:
          - name: nginx-configmap
            mountPath: /etc/nginx/nginx.conf  ##通过configmap挂载配置文件
            subPath: nginx.conf
        volumeMounts:
          - name: work   ##使用于初始化容器相同的挂载
            mountPath: "/usr/share/nginx/html"  ##nginx的默认首页路径
        ports:
        - containerPort: 80
          name: nginx-port
      volumes:
      - name: nginx-configmap
        configMap:
          name: nginx-configmap
          items:
          - key: nginx.conf
            path: nginx.conf
      volumes:
      - name: work
        emptyDir: {}    ##这里使用emptydir的方式挂载,类似于docker的匿名挂载

为了方便测试我们用命令通过nodeport方式暴露我们的service

kubectl create service nodeport nginx --tcp=80

测试访问

PS:这里是nodeport的形式,不同于hostport,nodeport方式所有的nodeip都可以实现访问,而hostport只能通过所在pod的nodeIP进行访问。

测试访问:
在这里插入图片描述
在这里插入图片描述

sidecar container

实验目标:

我们用一个sidecar容器去实时输出主业务容器的日志
上yaml文件

apiVersion: v1
kind: Pod
metadata:
  name: app01
spec:
  containers:
  - name: app
    image: busybox
    args:
    - /bin/sh
    - -c
    - >
      i=0;
      while true;
      do
        echo "$i:`date`" >> /var/log/date.log; ##使用死循环模拟产生日志
        i=$((i+1))
        sleep 1
      done
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  - name: sidecar
    image: busybox
    imagePullPolicy: IfNotPresent
    args: [/bin/sh, -c,"tail -f -n+1 /var/log/date.log"]
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  volumes:
  - name: varlog
    emptyDir: {}

测试访问

查看sidecar容器日志
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 21:54:18  更:2021-08-29 21:54:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:29:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码