欢迎光临散文网 会员登陆 & 注册

kubernetes 分布式集群架构

2023-04-03 18:42 作者:不伍消极  | 我要投稿

一,kubernetes 分布式集群架构

服务注册和服务发现问题怎么解决的?

每个服务分配一个不变的虚拟IP+端口

系统env环境变量里有每个服务的服务名称到IP的映射

'scheme' => 'tcp',

'host' => getenv('REDIS_MASTER_SERVICE_HOST') ,

'port' => $read_port,

]); 


二,kubernetes集群架构例子

1.创建redis-master Pod和服务

2. 创建redis-slave Pod和服务

3. 创建frontend Pod和服务

经过上面的三个步骤,我们终于成功实现了留言板系统在Kubernetes

上的部署工作,现在到了一起来见证成果的时刻了,在你的笔记本上

打开浏览器,输入下面的URL

http://虚拟机IP:30001

如果看到如图1.4所示的网页,并且看到网页上有一条留言——“Hello

World!”,那么恭喜你,之前的努力没有白费,如果看不到这个网页,

可能有几个原因,比如防火墙的问题,无法访问30001端口,或者因

为你是代理上网,浏览器错把虚机的IP地址当成远程地址了,如果这

种情况无法解决,那么也可以在虚机上直接运行 curl localhost:30001

来验证此端口是否能被访问,如果还是不能访问,那么这肯定不是机

器的问题… 

三,集群运维常见问题

1,资源隔离与调度问题

2,扩容与升级问题

3,资源配额问题

当Kubernetes启动一个容器时,会将CPU配额值乘以1024并转为整数传递给docker run的--cpu-shares参数,之所以乘以1024是因为Docker的cpu-shares参数是以1024 为基数计算CPU时间的。另外,Docker官方文档里解释说cpu-shares是一个相对权重值 (relative weight),因此Kubernetes官方文档里解释cpu: 0.5表示该容器占用0.5个CPU计算时间的说法其实是不准确的。仅当该节点是单核心CPU而且只运行两个容器,每个容器的CPU配额设定为0.5时,上述说法才成立。假如一个节点上同时运行了3个容器A,B,C,其中A容器的CPU配额设置为1,B与C设置为0.5。那么,当系统的CPU利用率达到100%时,A容器只占用了1*100/(1+0.5+0.5)=50%的CPU时间,而B与C分别占用25%的CPU时间。如果此时我们加入一个新的容器D,它的CPU配额也设置为1,则通过计算我们得到A此时只占据33%的CPU时间。对于目前主流的多核CPU,容器的CPU配额会在多核心上进行承担。因此在多核CPU上,即使某个容器声明CPU<1,它也可能会占满多个CPU核。例如2个设定cpu=0.5的容器运行在4核的CPU上,每个容器可能会用光4*0.5/(0.5+0.5)=2个CPU核。

4,私有docker registry


kubernetes 分布式集群架构的评论 (共 条)

分享到微博请遵守国家法律