• k8s学习笔记4-基础部分pod探针


    master:生产不要跑其他业务,最好管理和调度。生成证书的时候先规划好

    etcd:键值数据库,生产建议3个以上。节点500-1000能支持

    node:集群资源不够,添加node节点,比较简单

      kubelet:负责监听节点上pod的状态,同时负责上报节点和节点上面pod的状态,负责与master通信,管理pod

      kube-Proxy:负责pod之间的通信和负载,将指定的流量分发到后端正确的机器上

    route -n

    ipvsadm  -ln:

    ipvs:监听master节点增加和删除service以及endpoint的消息,调用netlink接口创建相应的ipvs规则,通过ipvs规则,将流量转发到相应的pod上。

    iptables:监听master节点和增加以及endpoint的消息,对于每一个service,他都会场景一个iptables规则,将service的clusterIP代理到后端对于的pod。但是规模大了性能低,不建议使用。

    kube-system自带pod解析

    calico:符合cni标准的网络插件,主要功能是每个pod生成一个唯一的ip地址,并且把每个节点的当做一个路由器,跨节点通信就可以实现。新生cilium

    coredns:用于k8s集群内部service的解析,可以让pod把service名称解析成ip地址,然后通过service的ip地址进行连接到对应的应用上。

    docker:容器引擎,负责对容器的管理。

    metrics-server:采集数据

    1. [root@master ~]# k top po -n kube-system
    2. NAME CPU(cores) MEMORY(bytes)
    3. calico-kube-controllers-bd5fc6b6-8csgh 3m 16Mi
    4. calico-node-5fzq4 36m 141Mi
    5. calico-node-wktvv 25m 137Mi
    6. calico-node-z9p4b 33m 133Mi
    7. coredns-5c5b9c5cb-j575k 3m 19Mi
    8. dns-autoscaler-7874cf6bcf-d6wkm 1m 11Mi
    9. kube-apiserver-master 57m 429Mi
    10. kube-controller-manager-master 15m 56Mi
    11. kube-proxy-4nxdl 6m 22Mi
    12. kube-proxy-fvnf8 6m 18Mi
    13. [root@master ~]# k top node
    14. NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
    15. master 267m 7% 3658Mi 49%
    16. node1 196m 5% 3113Mi 40%
    17. node2 96m 2% 3489Mi 45%

    大部分都是有ns隔离的,没有ns隔离的资源:

    kubectl get clusterrole

    pv,rbac,ns,ingressclass,storageclass

    pod: pos是k8s最小的隔离单元,它由一组,一个或多个容器组成,每个pod还包含了一个pause容器,pause容器是pod的父容器,主要负责僵尸进程的回收管理,通过pause容器可以使同一个pod里面的多个容器共享存储,网络,pid,ipc等。

    零宕机发布基础知识

    大佬博客: lady_killer9的博客_CSDN博客-网络安全,python,常见算法与数据结构实现领域博主

    pod探针:

    StartpProbe: k8s1.16版本后新增,判断容器内应用程序是否已经启动。如果配置了startpprobe,会禁止其他探测,直到他成功为止。

    LivenessProbe:没有配置该探针,默认就是success

    readinessprobe:判断容器内程序是否健康

    pod探针检测方式:

    execaction:容器内执行命令,返回为0即可

    tcpsocketaction:tcp连接检测容器内端口是否是通的。 类似netstat

    httpgetaction:应用程序api地址来检测。200-400则被认为健康

     livenessProbe:
              failureThreshold: 5
              httpGet:
                path: /health
                port: 8080
                scheme: HTTP
    探针检测参数配置:

              initialDelaySeconds: 60
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 5

    rc:pod副本期望值,基本很少使用,使用deployment替代

    deployment·:部署无状态服务器,最常用的控制器。一般用于管理 企业内部无状态的微服务。

    自动扩容缩容,自动灾难恢复,一键回滚等功能。  云原生:应用无状态

    deployment:

    kubectl create deployment -h

    kubectl create deployment nginx --image=nginx:1.15.2

     kubectl get deployment nginx -o yaml >nginx.yaml

     kubectl replace -f nginx.yaml

     kubectl edit deployment nginx

    换镜像版本:kubectl set image deploy nginx nginx=nginx:1.15.3 --record

    查看更新过程: kubectl rollout status deploy nginx

    kubectl get rs

    deployment操作:

    k8s学习-Deployment(模板、更新、扩缩容、回滚等)_lady_killer9的博客-CSDN博客_deployment k8s 模板

    多次更新,每次变动消耗资源,deployment暂停功能:  kubectl rollout pause deploy nginx

    恢复resumed

    deployment导出的yaml文件参数解释:

    StatefulSet 有状态服务:有启动顺序,所以命名是0-1-2-3……

     kg po -o yaml -n xx|grep image

    灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

    级联删除:删除StatefulSet也会删除pod

    非级联删除: cascade

    daemonset控制器能够确保所有的k8s的node节点都运行一个相同的pod副本,当向k8s集群中增加node节点时,这个node节点也会自动创建一个pod副本,当node节点从集群移除,这些pod也会自动删除;删除daemonset也会删除它们创建的pod

    使用场景:

    (1)在每一个node节点运行一个存储服务,例如gluster,ceph
    (2)在每一个node节点运行一个日志收集服务,例如fluentd,logstash
    (3)在每一个node节点运行一个监控服务,例如Prometheus Node Exporter,zabbix agent等
    相较于Deployment,DaemonSet没有副本数,因为他是一个节点启动一个,容器。

    hpa:

    HPA全称是Horizontal Pod Autoscaler,中文意思是POD水平自动伸缩.

    可以基于 CPU 利用率自动扩缩 ReplicationController、Deployment、ReplicaSet 和 StatefulSet 中的 Pod 数量。

    除了 CPU 利用率,内存占用外,也可以基于其他应程序提供的自定义度量指标来执行自动扩缩。
     

  • 相关阅读:
    LeetCode 45. Jump Game II(DP)
    以K近邻算法为例,使用网格搜索GridSearchCV优化模型最佳参数
    SpringMVC——进阶
    虹科示波器 | 汽车免拆检测 | 2017款路虎发现车行驶中发动机抖动且加速无力
    C++学习笔记——链表基础算法
    一文学会线程池、任务调度的使用
    Spring Cloud Alibaba —— 服务注册与配置中心
    leetcode 172-阶乘后的零
    仿游戏热血江湖游戏类32
    利用yolov7训练自己的数据集; yolov7的安装与使用 ; yolov7源码解读
  • 原文地址:https://blog.csdn.net/sinat_23880167/article/details/125773859