zoukankan      html  css  js  c++  java
  • 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
    
    
  • 相关阅读:
    .NET CF 枚举设备窗口
    .NET CF WM设备(手机)振动
    如何将 byte[] 转换为 IntPtr?
    Mobile 重启设备
    如何删除只读文件?
    随笔
    故乡的原风景
    岁月神偷
    opengl纹理映射
    bootstrap 学习笔记
  • 原文地址:https://www.cnblogs.com/fixedstar/p/14633147.html
Copyright © 2011-2022 走看看