zoukankan      html  css  js  c++  java
  • HPA & 卷 & 网络

    Horizontal Pod Autoscaler (HPA) https://mp.weixin.qq.com/s?__biz=MzIyMTUwMDMyOQ==&mid=2247489081&idx=1&sn=a17fcfc5147d9cb53eb25a348386460d&chksm=e83a90ffdf4d19e926ba59cce8a4f320dae53f0ffcfd3a7077eac70d75567a28daa1fc3d004b&scene=21#wechat_redirect

    HPA会根据监测到的CPU/内存利用率(资源指标),或基于第三方指标应用程序(如Prometheus、Datadog等)提供的自定义指标,自动调整副本控制器、部署或者副本集合的pods数量(定义最小和最大pods数)
    HPA是Kubernetes中弹性伸缩API组下的一个API资源。当前稳定的版本是autoscaling/v1,它只提供了对CPU自动缩放的支持。如果您想额外获得对内存和自定义指标的支持,可以使用Beta版本autoscaling/v2beta1。

    =======================

    推荐使用ReplicaSets管理Pod

    Deployment API被设计为管理ReplicaSet对象的高级API

    =========卷的介绍========https://mp.weixin.qq.com/s?__biz=MzIyMTUwMDMyOQ==&mid=2247490344&idx=1&sn=81148d96ceec1f5d4ca5edcfb68e2657&chksm=e83a9deedf4d14f8fdecc465c071bcea932af726d67094edcc7daa55f97cfa182979445d5208&scene=21#wechat_redirect
    Kubernetes的volume:它与Pod的生命周期相同,但与容器的生命周期无关

    1 emptyDir类型的Volume在Pod分配到Node上时被创建,Kubernetes会在Node上自动分配一个目录,无需指定宿主机Node上对应的目录文件。 这个目录的初始内容为空,当Pod从Node上移除时,emptyDir中的数据会被永久删除。注:容器的crashing事件并不会导致emptyDir中的数据被删除
    2 hostPath类型则是映射node文件系统中的文件或者目录到pod里。在使用hostPath类型的存储卷时,也可以设置type字段,支持的类型有文件、目录、File、Socket、CharDevice和BlockDevice。注意:当Kubernetes增加了资源敏感的调度程序,hostPath使用的资源不会被计算在内。
    在使用hostPath volume卷时,即便pod已经被删除了,volume卷中的数据还在!

    【emptyDir是临时存储空间,完全不提供持久化支持;hostpath支持持久化】

    3 Local volume 允许用户通过标准PVC接口以简单且可移植的方式访问node节点的本地存储
    4

    =============

    进入pod中的容器中:kubectl exec -it test-pod -c test-emptydir /bin/sh 进入test-pod中的容器test-emptydir中
    每一个添加到Kubernetes集群的工作负载必须放在一个命名空间中。

    job会在任务完成时退出
     Kubernetes支持两种不同的文件格式,YAML和JSON。每种格式都可以描述Kubernetes的相同功能

    ==============

    在Kubernetes中有4种网络模型:

    • 容器到容器的通信

    • Pod到Pod的通信

    • Pod到服务的通信

    • 外部到内部的通信

    1 Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平的网络空间中

    2 Flannel的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。而且它还能在这些IP地址之间建立一个覆盖网络(Overlay Network),通过这个覆盖网络,将数据包原封不动地传递到目标容器内

    3 Flannel之间的底层通信协议的可选余地有很多,比如UDP、VXlan、AWS VPC等等。只要能通到对端的Flannel就可以了

    4 Pod的地址是与docker0在同一个网段的,但docker0网段与宿主机网卡是两个完全不同的IP网段,并且不同Node之间的通信只能通过宿主机的物理网卡进行

    5 Service仅支持UDP和TCP协议,所以像ping的ICMP协议是用不了的,所以无法ping通Service IP

    6 由于Pod和Service是Kubernetes集群范围内的虚拟概念,所以集群外的客户端系统无法通访问到它们。为了让外部客户端可以访问这些服务,可以将Pod或Service的端口号映射到宿主机,以使得客户端应用能够通过物理机访问容器应用。

    7 Flannel默认的底层通信协议是UDP。UDP本身是非可靠协议,虽然两端的TCP实现了可靠传输,但在大流量、高并发应用场景下还需要反复调试,确保不会出现传输质量的问题。特别是对网络依赖重的应用,需要评估对业务的影响。

    8 目前Kubernetes网络最快的第一就是Calico,第二种稍慢Flannel,根据自己的网络环境条件来定。 Calico目前还有些小缺陷,比如stable版本还无法支持私有网络,但希望在后面的版本中会更加强大

    ================

    安装前disable 防火墙或iptables

     master上还要装kubectl 

     

     

     

  • 相关阅读:
    MD5中使用16进制
    关于mysql函数GROUP_CONCAT
    一个不错的源码网站
    查看jdk 线程 日志
    list 的sublist 隐藏 bug
    web 环境项目(intellj部署的tomcat) 重启时报 Exception in thread "HouseKeeper" java.lang.NullPointerException
    怎么给已有项目引入别的项目
    javascript 和 CoffeeScript 里的类
    express 与 mvc
    express的路由
  • 原文地址:https://www.cnblogs.com/testzcy/p/13027564.html
Copyright © 2011-2022 走看看