关于k8s配置文件详解,k8s安装配置这个很多人还不知道,今天天天来为大家解答以上的问题,现在让我们一起来看看吧!

k8s配置文件详解 k8s安装配置k8s配置文件详解 k8s安装配置


k8s配置文件详解 k8s安装配置


1、RC、Deployment、DaemonSet都是面向无状态的服务,它们所管理的Pod的IP、名字,启停顺序等都是随机的,而StatefulSet是什么?顾名思义,有状态的,管理所有有状态的服务,比如MySQL、MongoDB集群等。

2、StatefulSet本质上是Deployment的一种变体,在v1.9版本中已成为GA版本,它为了解决有状态服务的问题,它所管理的Pod拥有固定的PodmatchLabels:名称,启停顺序,在StatefulSet中,Pod名字称为网络标识(hostname),还必须要用到共享存储。

3、在Deployment中,与之对应的服务是serv,而在StatefulSet中与之对应的headless serv,headless serv,即无头服务,与serv的区别就是它没有Cluster IP,解析它的名称时将spec:返回该Headless Serv对应的全部Pod的Endpoint列表。

4、除此之外,StatefulSet在Headless Serv的基础上又为StatefulSet控制的每个Pod副本创建了一个DNS域名,这个域名的格式为:接下来看一些示例,演示下上面所说的特性,以加深理解通过该配置文件,可看出StatefulSet的三个组成部分:创建:看下这三个Pod创建过程:根据volumeClaimTemplates自动创建的PVCStatefulset名称为web 三个Pod副本: web-0,web-1,web-2,volumeClaimTemplates名称为:www,那么自动创建出来的PVC名称为www-web[0-2],为每个Pod创建一个PVC。

5、匹配Pod name(网络标识)的模式为: (序号),比如上面的示例:web-0,web-1,web-2。

6、StatefulSet为每个Pod副本创建了一个DNS域名,这个域名的格式为: $(podname).(headless server name),也就意味着服务间是通过Pod域名来通信而非Pod IP,因为当Pod所在Node发生故障时,Pod会被飘移到其它Node上,Pod IP会发生变化,但是Pod域名不会有变化。

7、根据volumeClaimTemplates,为每个Pod创建一个pvc,pvc的命名规则匹配模式:( volumeClaimTemplates.name)-(pod_name ),比如上面的 volumeMounts.name=www , Pod name=web-[0-2],因此创建出来的PVC是www-web-0、www-web-1、www-web-2。

8、删除Pod不会删除其pvc,手动删除pvc将自动释放pv。

9、关于Cluster Domain、headless serv名称、StatefulSet 名称如何影响StatefulSet的Pod的DNS域名的示例:在v1.7以后,通过允许修改Pod排序策略,同时通过.spec.podMamentPolicy字段确保其身份的性。

10、在Kubernetes 1.7及更高版本中,通过.spec.updateStrategy字段允许配置或禁用Pod、labels、source request/limits、annotations自动滚动更新功能。

11、StatefulSet将删除并重新创建StatefulSet中的每个Pod。

12、它将以Pod终止(从序数到最小序数)的顺序进行,一次更新每个Pod。

13、在更新下一个Pod之前,必须等待这个Pod Running and Ready。

本文到这结束,希望上面文章对大家有所帮助。