|NO.Z.00118|——————————|CloudNative|——|KuberNetes&基础标签.V01|——|kubernetes.v01|架构说明|
一、Kubernetes详解
### --- 为什么需要使用到Kubernetes
~~~ # docker已经可以实现帮我们部署应用,而且可以帮我们实现我们需要的功能,为什么还需要引入k8s呢
~~~ docker部署应用,前期部署的容器并不多,而且应用到容器也不多。
~~~ 直接使用docker或者宿主机部署应用也是可以去实现的。
~~~ 但是业务量的增加,需要的宿主机或者容器比较多,管理起来也会比较困难。
~~~ 比如说容器只有一个副本,而且这个副本是保存在宿主机上;当我们的宿主机挂了。
~~~ # 就会不容易恢复,而且容器挂掉。docker是没有任何恢复机制的。
~~~ 所以说宿主机挂了就会影响到容器,进程和业务。这个宕机是无法恢复,需要把容器打开才可以
~~~ 还有就是Java容器宕机的几率更高。
~~~ # 这个Java程序是运行起来的,telnet也是通的,但是访问它的API接口,是没有任何响应的。
~~~ 这就是程序的假死现象。分辨不出程序是否是正常的;是需要使用通过API接口来判断是否是正常的,
~~~ 但是通过容器来判断是非常困难的。
~~~ 使用脚本或者执行命令来判断来是非常难做,而ks是非常容易的,它会有这种判断的机制。
~~~ # 我们使用容器或者逻辑进行部署的时候,
~~~ 做一个程序的发布,或者创建一个程序是非常的麻烦。需要设置它的基础环境。
~~~ 而容器就不需要这个步骤,只需要把镜像拉下来,启动即可。
~~~ # 但是我们不熟完后,若是我们有一个需求。
~~~ 就是我们有一个活动可能会给我们带来很大的流量,
~~~ 但是我们之前部署的2个或者3个副本不足以支持我们的业务。
~~~ 我们需要去扩容我们容器或者节点。需要手动扩容或者自动化扩容。
~~~ # 但是k8s中只需要一条命令就可以实现快速的扩容,或者快速的缩容
~~~ 容器量多的时候管理起来是非常麻烦的。但是k8s管理起来是非常方便的。
~~~ k8s中对于一个容器启动100个副本或者200个副本都是没有问题的。
~~~ # 而且使用裸docker部署的时候会遇到需要把容器的端口号暴露到宿主机;
~~~ 需要宿主机加端口才可以访问我们的进程。若是这个宿主机部署了4个应用,那就是需要启动5个端口。
~~~ 在k8s中,有一个nameserver的机制,在容器里启动相同的端口,这个端口可以不直接暴露在外,
~~~ #通过一个service,这个service可以反代到容器里面,就是通过service访问到容器里面的业务,
~~~ 这个service里面都会有一个IP地址,每个service都是唯一的,所以就不会出现端口冲突的问题。
二、kubernetes详解
### --- kubernetes概述
~~~ kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目。
~~~ kubernetes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。

### --- kubernetes节点说明
~~~ # 一般情况下,生产环境下使用3台master节点就已经足够了,
~~~ 3台master节点的配置够的话,承载上千个node节点是完全没有问题的。
~~~ node节点是可以横向区扩容,只要你master节点可以扛得住,扩多少节点都是没有问题的。
~~~ 从图片可以看出,k8s是一个主从架构的;
~~~ # 从节点是用来部署应用程序的,主节点在生产环境中是不建议跑应用程序的。
~~~ 它只是负责一些调度工作或者控制工作。若是部署上去会增加它的压力。
~~~ # Load Balancer:就是一个VIP我们使用Keepalived 和haproxy去虚拟出来的一个VIP。
~~~ 这个vip是对master实现了高可用,可以绑定在master节点的一个网卡上面;
~~~ 所以说通过load balancer可以访问到APIServer。这就是负载均衡的作用。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了