• pod 状态


    CrashLoopBackOff: 容器退出,kubelet正在将它重启
    InvalidImageName: 无法解析镜像名称
    ImageInspectError: 无法校验镜像
    ErrImageNeverPull: 策略禁止拉取镜像
    ImagePullBackOff: 正在重试拉取
    RegistryUnavailable: 连接不到镜像中心
    ErrImagePull: 通用的拉取镜像出错
    CreateContainerConfigError: 不能创建kubelet使用的容器配置
    CreateContainerError: 创建容器失败
    m.internalLifecycle.PreStartContainer  执行hook报错
    RunContainerError: 启动容器失败
    PostStartHookError: 执行hook报错 
    ContainersNotInitialized: 容器没有初始化完毕
    ContainersNotReady: 容器没有准备完毕 
    ContainerCreating:容器创建中
    PodInitializing:pod 初始化中 
    DockerDaemonNotReady:docker还没有完全启动
    NetworkPluginNotReady: 网络插件还没有完全启动

    K8S使用及命令
    YAML配置文件管理对象
    对象管理:
    # 创建deployment资源
    kubectl create -f nginx-deployment.yaml
    # 查看deployment
    kubectl get deploy
    # 查看ReplicaSet
    kubectl get rs
    # 查看pods所有标签
    kubectl get pods --show-labels
    # 根据标签查看pods
    kubectl get pods -l app=nginx
    # 滚动更新镜像
    kubectl set image deployment/nginx-deployment nginx=nginx:1.11
    或者
    kubectl edit deployment/nginx-deployment
    或者
    kubectl apply -f nginx-deployment.yaml
    # 实时观察发布状态:
    kubectl rollout status deployment/nginx-deployment
    # 查看deployment历史修订版本
    kubectl rollout history deployment/nginx-deployment
    kubectl rollout history deployment/nginx-deployment --revision=3
    # 回滚到以前版本
    kubectl rollout undo deployment/nginx-deployment
    kubectl rollout undo deployment/nginx-deployment --to-revision=3
    # 扩容deployment的Pod副本数量
    kubectl scale deployment nginx-deployment --replicas=10
    # 设置启动扩容/缩容
    kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80

    # 删除
    清理:
    kubectl delete -f nginx-deployment.yaml
    kubectl delete -f nginx-service.yaml
    Pod管理-创建/查询/更新/删除
    基本管理:
    # 创建pod资源
    kubectl create -f pod.yaml
    # 查看pods
    kubectl get pods pod-test
    # 查看pod描述
    kubectl describe pod pod-test
    # 替换资源
    kubectl replace -f pod.yaml -force
    # 删除资源
    kubectl delete pod pod-test

    nginx.deployment 示例

    apiVersion: apps/v2
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.10
            ports:
            - containerPort: 80

    nging.service 示例

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        run: nginx
      name: nginx
      namespace: default
    spec:
      ports:
      - port: 88
        targetPort: 80
      selector:
        app: nginx

    支持三种策略:

    Always:当容器终止退出后,总是重启容器,默认策略。

    OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。

    Never:当容器终止退出,从不重启容器。

    pod 实例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-test
      labels:
         os: centos
    spec:
      containers:
      - name: hello
        image: centos:7
        env:
        - name: Test
          value: "123456"
        command: ["bash","-c","while true;do date;sleep 1;done"]
      restartPolicy: OnFailure
    提供Probe机制,有以下两种类型:
    livenessProbe
    如果检查失败,将杀死容器,然后根据Pod的重启策略来决定是否
    重启。
    readinessProbe
    如果检查失败,Kubernetes会把Pod从服务代理的分发后端剔除。
    Probe支持以下三种检查方法:
    httpGet
    发送HTTP请求,返回200-400范围状态码为成功。
    exec
    执行Shell命令返回状态码是0为成功。
    tcpSocket
    发起TCP Socket建立成功。

    Pod管理-数据持久化和共享示例:
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-test1
      labels:
         test: centos
    spec:
      containers:
      # 第一个容器
      - name: hello-write
        image: centos:7
        command: ["bash","-c","for i in {1..1000};do echo $i >> /data/hello;sleep 1;done"]
      # 第二个容器
      - name: hello-read
        image: centos:7
        command: ["bash","-c","for i in {1..1000};do cat $i >> /data/hello;sleep 1;done"]
        volumeMounts:
          - name: data
            mountPath: /data
      # 数据卷
      volumes:
      - name: data
        hostPath:
          path: /data

    Pod端口映射示例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx-pod
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.10
        ports:
        - name: http
          containerPort: 80
          hostIP: 0.0.0.0
          hostPort: 80
          protocol: TCP
       - name: https
         containerPort: 443
         hostIP: 0.0.0.0
         hostPort: 443
         protocol: TCP
    
    
  • 相关阅读:
    【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)
    【POJ 2152】 Fire (树形DP)
    【POJ 1741】 Tree (树的点分治)
    【POJ 2486】 Apple Tree (树形DP)
    【HDU 3810】 Magina (01背包,优先队列优化,并查集)
    【SGU 390】Tickets (数位DP)
    【SPOJ 2319】 BIGSEQ
    【SPOJ 1182】 SORTBIT
    【HDU 5456】 Matches Puzzle Game (数位DP)
    【HDU 3652】 B-number (数位DP)
  • 原文地址:https://www.cnblogs.com/fixedstar/p/14633147.html
Copyright © 2020-2023  润新知