• Docker Kubernetes 容器重启策略


    Docker Kubernetes 容器重启策略

    当容器被创建时,容器会根据重启策略来进行容器重启。

    支持三种策略:

    • Always:当容器终止退出后,总是重启容器,默认策略。
    • OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
    • Never:当容器终止退出,从不重启容器。

    环境:

    • 系统:Centos 7.4 x64
    • Docker版本:18.09.0
    • Kubernetes版本:v1.8
    • 管理节点:192.168.1.79
    • 工作节点:192.168.1.78
    • 工作节点:192.168.1.77

    案例一

    1、管理节点:创建Pod时添加重启策略

    vim pod.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-test
      labels:
        test: centos
    spec:
      containers:
      - name: hello
        image: centos:6
        command: ["bash","-c","while true;do date;sleep 1;done"]
      restartPolicy: OnFilure
    # api版本
    apiVersion: v1
    # 指定创建资源对象
    kind: Pod
    # 源数据、可以写name,命名空间,对象标签
    metadata:
    # 服务名称
      name: pod-test
    # 标签
      labels:
    # 标签名
        os: centos
    # 容器资源信息
    spec:
    # 容器管理
      containers:
    # 容器名称
      - name: hello
    # 容器镜像
        image: centos:6
    # 添加环境变量
        env:
    # 创建key
        - name: Test
    # 创建value
          value: "123456"
    # 启动容器后执行命令
        command: ["bash","-c","while true;do date;sleep 1;done"]
    # 重启策略 可添加(Always,OnFailure,Never)
      restartPolicy: OnFilure
    命令注解

    2、管理节点:创建Pod

    kubectl create -f pod.yaml
    命令:kubectl describe pods pod-test 
    
    # 重启统计
    Restart Count:  0
    查看pod状态

    注:OnFailure状态可在相关节点kill掉容器服务测试重启。


    案例二 

    # 查看默认重启策略
    kubectl edit deployment nginx
    restartPolicy: Always

    # 语法格式

    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
      namespace: awesomeapps
    spec:
      containers:
        - name: foo
          image: janedoe/awesomeapp:v1
      restartPolicy: Always

    1、创建测试yaml;每个10秒发出异常退出重启容器

    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
    spec:
      containers:
      - name: busybox
        image: busybox
        args:
        - /bin/sh
        - -c
        - sleep 10
    vim restart.yaml

    2、执行文件

    kubectl create -f restart.yaml

    3、设置重启策略,当容器异常退出时直接销毁,不重启

    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
    spec:
      containers:
      - name: busybox
        image: busybox
        args:
        - /bin/sh
        - -c
        - sleep 10
      restartPolicy: Never
    vim restart.yaml

    4、执行文件

    kubectl create -f restart.yaml

    5、测试

    10秒后查看

  • 相关阅读:
    C++界面库(十几种,很全)
    前端框架
    Asp.Net Web Api 接口,拥抱支持跨域访问。
    WEB控件
    MVC之验证
    AJAX跨域调用ASP.NET MVC或者WebAPI服务
    VS生产的编辑方法和编辑窗体
    DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?
    Redis简介与简单安装
    Cocos2d-x 3.1.1开发环境
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/10011992.html
Copyright © 2020-2023  润新知