k8s 重启策略、健康检查、环境变量、初始化容器

Pod基本概念

Pod是Kubernetes创建和管理的最小单元,一个Pod由一个容器或多个容器组成,这些容器共享存储、网络。

Pod特点

  • 一个Pod可以理解为是一个应用实例,提供服务.
  • Pod中容器始终部署在一个Node上
  • Pod中容器共享网络、存储资源
  • Kubernetes直接管理Pod,而不是容器

Pod存在意义

Pod主要用法:

  • 运行单个容器:最常见的用法,在这种情况下,可以将Pod看做是单个容器的抽象封装
  • 运行多个容器:封装多个紧密耦合且需要共享资源的应用程序

如果有这些需求,你可以运行多个容器:

  • 两个应用之间发生文件交互
  • 两个应用需要通过127.0.0.1或者socket通信
  • 两个应用需要发生频繁的调用

Pod资源共享实现机制

在这里插入图片描述
在这里插入图片描述

重启策略

  • Always:当容器终止退出后,总是重启容器,默认策略(总是重启)
  • OnFailure:当容器异常退出(退出状态码非0)时,才重启容器 (非正常退出,比如stop、kill)
  • Never:当容器终止退出,从不重启容器(永不重启)
[root@master manifest]# cat test.yml 
apiVersion: v1
kind: Pod
metadata: 
  name: web
spec: 
  containers:		//一个pod多个容器
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  - name: test
    image: busybox
    imagePullPolicy: IfNotPresent
    command: ["bin/sh","-c","sleep 450"]
  restartPolicy: Never		#默认的话不用修改,改为never后停止容器不会重启

[root@master manifest]# kubectl apply -f test.yml 		//创建pod
pod/web created
[root@master manifest]# kubectl get pod 
NAME   READY   STATUS    RESTARTS   AGE
web    2/2     Running   0          92s
[root@master manifest]# kubectl get pod -o wide -w		//在node2上停止其中一个,发现并不会重启
NAME   READY   STATUS   RESTARTS   AGE     IP            NODE                NOMINATED NODE   READINESS GATES
web    1/2     NotReady    0          4m51s   10.244.2.10   node2.example.com   <none>           <none>

健康检查

  • livenessProbe(存活检查)︰如果检查失败,将杀死容器,根据Pod的- restartPolicy来操作
  • readinessProbe(就绪检查)︰如果检查失败,Kubernetes会把Pod从service endpoints中剔除

支持的检查方式:

  • httpGet:发送HTTP请求,返回200-400范围状态码为成功
  • exec: 执行hell命令返回状态码是0为成功
  • tcpSocket:发起TCP Socket建立成功
    与重启策略相结合使用

重启策略+健康检查
在这里插入图片描述

//端口探测
[root@master ~]# cat test.yml 
---
apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
      hostPort: 80
    livenessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 20 		#启动容器后多少秒健康检查
      periodSeconds: 10 			#以后间隔多少秒检查一次
    readinessProbe:
      httpGet:
        port: 80
      initialDelaySeconds: 20
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值