编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

kubernetes 分布式集群架构(kubernetes集群中的minions)

wxchong 2024-11-16 01:31:17 开源技术 20 ℃ 0 评论

一,kubernetes 分布式集群架构




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

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

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

client = new Predis\Client([

'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


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表