日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

云原生Kubernetes初始化容器Init使用教程_云其它

作者:愿許浪盡天涯 ? 更新時間: 2022-05-22 編程語言

一、基本介紹

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)驗證

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/weixin_46902396/article/details/123313017

欄目分類
最近更新