云原生Kubernetes初始化容器Init使用介绍

目录
  • 一、基本介绍
    • 使用 Init 容器的作用:

一、基本介绍

Kubernetes 中 Init 容器,也叫做初始化容器,是 K8s 官方为我们提供的一个 可以用来判断我们的环境是否已经满足运行 Pod 应用前所需要的条件。 比如,我们有一个应用是 Tomcat,但是需要向 ZooKeeper 中进行注册。

而恰好我们在运行 Tomcat 时,ZooKeeper 出现了故障,从而导致我们的 Tomcat 因为注册不上数据而导致系统报错。

但是当我们给 Tomcat 配置上 Init 容器后,效果便不再如上;因为我们可以让 Init 容器运行 until 命令进行判断,判断是否满足我们应用运行的要求,成功便会退出,否则将会一直进行循环操作,直到条件成功。

使用 Init 容器的作用:

不需要在应用容器中安装一些辅助工具(如:nslookup nc)可以通过配置 Init 容器来判断是否满足应用容器的启动条件,并且 Init 容器可以访问到应用容器不能访问的 Secret 权限。 二、Init 容器使用介绍

1)创建 Pod 的 yaml 文件

[root@k8s-master01 ~]# vim busybox-init.yaml
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  labels:
    app: test
spec:
  initContainers:
  - name: init-1
    image: busybox:1.28.4
    command: ['sh','-c','until nslookup kubernetes;do echo Waiting for K8s...;sleep 3;done;']
  - name: init-2
    image: busybox:1.28.4
    command: ['sh','-c','until nslookup tomcat;do echo Waiting for Tomcat...;sleep 3;done;']
  containers:
  - name: busybox
    image: busybox:1.28.4
    command: ['sh','-c','echo Hello World && sleep 3600']

当我们定义的初始化容器运行成功后,便会进行退出操作,紧接着启动下一个容器。

2)通过 yaml 文件启动 Pod

[root@k8s-master01 ~]# kubectl create -f busybox-init.yaml

3)创建 Service 服务

[root@k8s-master01 ~]# kubectl create service clusterip tomcat --tcp=8080

4)验证

以上就是云原生Kubernetes中Init 容器使用介绍的详细内容,更多关于Kubernetes Init 容器使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • C语言矩阵连乘 (动态规划)详解

    动态规划法 题目描述:给定n个矩阵{A1,A2....An},其中Ai与Ai+1是可以相乘的,判断这n个矩阵通过加括号的方式相乘,使得相乘的次数最少! 以矩阵链ABCD为例 按照矩阵链长度递增计算最优值 矩阵链长度为1时,分别计算出矩阵链A.B.C.D的最优值 矩阵链长度为2时,分别计算出矩阵链AB.BC.CD的最优值 矩阵链长度为3时,分别计算出矩阵链ABC.BCD的最优值 矩阵链长度为4时,计算出矩阵链ABCD的最优值 动归方程: 分析: k为矩阵链断开的位置 d数组存放矩阵链计算的最优值,

  • C++动态规划之背包问题解决方法

    本文实例讲述了C++动态规划之背包问题解决方法.分享给大家供大家参考.具体分析如下: 问题描述: 背包的最大容量为W,有N件物品,每件物品重量为w,价值为p,怎样选择物品能使得背包里的物品价值最大? 输入: 10 3   (W,N) 4 5   (w,p) 6 7   (w,p) 8 9   (w,p) 实现代码: #include <stdio.h> #define THING 20 #define WEIGHT 100 int arr[THING][WEIGHT]; /* 背包容量为wei

  • c++基础算法动态DP解决CoinChange问题

    目录 问题来源 问题简述 解决方案 真正的DP 补充--硬币不能重复使用 补充2--不同顺序表示不同组合 结束语 问题来源 这是Hackerrank上的一个比较有意思的问题,详见下面的链接: https://www.hackerrank.com/challenges/ctci-coin-change 问题简述 给定m个不同面额的硬币,C={c0, c1, c2-cm-1},找到共有几种不同的组合可以使得数额为n的钱换成等额的硬币(每种硬币可以重复使用). 比如:给定m=3,C={2,1,3},n

  • C语言使用DP动态规划思想解最大K乘积与乘积最大问题

    最大K乘积问题 设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 编程任务: 对于给定的I 和k,编程计算I 的最大k 乘积. 需求输入: 输入的第1 行中有2个正整数n和k.正整数n是序列的长度:正整数k是分割的段数.接下来的一行中是一个n位十进制整数.(n<=10) 需求输出: 计算出的最大k乘积. 解题思路:DP 设w(h,k) 表示: 从第1位到第K位所组成的十进制数,设m(i,j)

  • 云原生Kubernetes初始化容器Init使用介绍

    目录 一.基本介绍 使用 Init 容器的作用: 一.基本介绍 Kubernetes 中 Init 容器,也叫做初始化容器,是 K8s 官方为我们提供的一个 可以用来判断我们的环境是否已经满足运行 Pod 应用前所需要的条件. 比如,我们有一个应用是 Tomcat,但是需要向 ZooKeeper 中进行注册. 而恰好我们在运行 Tomcat 时,ZooKeeper 出现了故障,从而导致我们的 Tomcat 因为注册不上数据而导致系统报错. 但是当我们给 Tomcat 配置上 Init 容器后,效

  • 云原生Kubernetes初始化容器Init使用教程

    目录 一.基本介绍 使用 Init 容器的作用: 二.Init 容器使用介绍 一.基本介绍 Kubernetes 中 Init 容器,也叫做初始化容器,是 K8s 官方为我们提供的一个 可以用来判断我们的环境是否已经满足运行 Pod 应用前所需要的条件. 比如,我们有一个应用是 Tomcat,但是需要向 ZooKeeper 中进行注册. 而恰好我们在运行 Tomcat 时,ZooKeeper 出现了故障,从而导致我们的 Tomcat 因为注册不上数据而导致系统报错. 但是当我们给 Tomcat

  • k8s service使用详解(云原生kubernetes)

    目录 一.什么是服务service? 二.service分类 2.1 ClusterIP 2.2 NodePort 2.3 LoadBalancer(付费方案) 2.4 ExternalName (使用较少) 三.service和pod的关系 四.Service 之 ClusterIP 使用 4.1 在当前目录下,创建一个deploy-nginx-pod.yaml,配置如下 4.2 暴露服务为 clusterIP 类型 4.3 查看服务 五.Service 之 NodePort 使用 5.1 关

  • Go chassis云原生微服务开发框架应用编程实战

    目录 什么是Go chassis 文章目标 诞生背景 如何快速开发一个微服务 统一治理和协议模型 可扩展的处理链条:handler chain as middleware 不只是API,通过配置简化开发过程 插件化 什么是Go chassis go chassis是一个go语言微服务开发框架,专注于云原生应用的开发主要的使用场景是云服务开发.go chassis将云服务开发过程中沉淀的能力融入到了开发框架中,以帮助开发团队快速编写云原生应用. 文章目标 本文介绍我们的设计理念和目标,为何go c

  • 云原生技术kubernetes之volumes容器的使用

    目录 卷(volumes): 1.emptyDir 1.1.emptyDir卷特性: 1.2.官方示例: 1.3.我们做一个实例: 2.HostPath 2.1.HostPath卷特性: 2.2.官方示例: 2.3.我们做一个实例: 3.nfs 卷(volumes): 容器中的文件存在时间是短暂的,当一个容器发生崩溃时,文件会丢失,而容器重新启动后状态却是干净的:而第二个问题时解决了一个Pod中不同容器间共享文件. 卷的类型有很多,详细请查看官方文档:卷 1.emptyDir 1.1.empty

  • 云原生技术kubernetes调度单位pod的使用详解

    k8s中的最小调度单位---pod 之前的文章中,我们对k8s能够解决的问题做了简单介绍,简单来说,它解决的问题是容器的编排与调度,它的核心价值在于:运行在大规模集群的任务之间,实际上存在着各种各样的关系,这些关系的处理,才是任务编排和系统管理最困难的地方,k8s就是为了这个问题而生的. 这句话比较难理解,我们从已有的知识入手,抽丝剥茧,慢慢理解它.我们已经知道,容器的本质是一个进程,它包含三个部分: 如果说容器是云环境的一个进程,那么你可以将k8s理解成云环境中的一个操作系统. 在一个操作系统

  • 云原生技术kubernetes(K8S)简介

    目录 01 kubernetes是什么? 02 kubernetes和Compost+Swarm之间的区别 03 一点总结 今天我们看看kubernetes技术的介绍,最近在极客时间上看张磊老师的深入kubernetes技术,讲的非常好,有兴趣的同学可以去收听一下,对于理解kubernetes技术非常有帮助,这里我会按照自己的进度,分享一下学习的笔记. 今天站的角度比较高,概念性质的东西会多一点. 01 kubernetes是什么? 曾经我认为这个问题很好回答,直到不断的去理解kubernete

  • 煮饺子论云原生docker与kubernetes之间的关系

    目录 前言 一.周末煮饺子聊到容器问题 二.说说docker与煮饺子的容器 三.聊聊集群煮饺子(k8s) 前言 云原生的概念最近非常火爆,企业落地云原生的愿望也越发强烈.看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡. 所以笔者就有了写<大话云原生>系列文章的想法,期望用最通俗.简单的语言说明白云原生生态系统内的组成及应用关系.那么,开始吧,这是第一篇! 这真的是一篇讲架构技术的文章,不是小说!建议您看下去! 一.周末煮饺子聊到容器问题 周末和老婆一起包了顿饺子,“老公,我去买瓶醋,你把

  • 云原生系列Kubernetes深度解析YAML文件使用

    目录 写在前面 YAML基础 Maps Lists 使⽤ YAML 创建 Pod 创建 Pod 创建 Deployment 写在前面 在前⾯的课程中,我们在安装 kubernetes 集群的时候使⽤了⼀些 YAML ⽂件来创建相关的资源,但大家对 YAML ⽂件还是⾮常陌⽣.所以我们先来简单看⼀看 YAML ⽂件是如何⼯作的,并使⽤ YAML ⽂件来定义⼀个 k8s pod,然后再定义⼀个 k8s deployment吧. YAML基础 它的基本语法规则如下: ⼤⼩写敏感 使⽤缩进表示层级关系

  • NodeJS 基于 Dapr 构建云原生微服务应用快速入门教程

    目录 安装 Dapr CLI 本地环境中初始化 Dapr 运行初始化 CLI 命令 验证容器是否正在运行 验证组件目录是否已初始化 使用 Dapr API 运行 Dapr sidecar 保存状态 获取状态 删除状态 上手实战指南 1. 服务调用 示例仓库 运行 order-processor 服务 运行 checkout 服务 查看服务调用输出 2. 状态管理 操纵服务状态 查看 order-processor 输出 3. 发布和订阅 订阅 topic 发布 topic 查看发布/订阅输出 4

随机推荐