网站首页 > 文章精选 正文
有状态的服务比如数据库,无状态的服务比如网页。
kubernetes也叫k8s,是在k和s之间有8个英文字母,ubernete这8个字母。它是一个可移植、可扩展的开源平台,它是基于谷歌的Borg。它是基于容器技术的分布式架构方案。
kubernetes是可插拔的,可以选择不同的容器运行时,比如docker或者containerd。从kubernetes v1.24版本开始移除了内置的docker运行时,它出了一个运行时的接口。
kubernetes的作用:
①:服务发现和负载均衡LoadBalance。可以利用dns域名或者service的IP地址地址去暴露容器。
②:kubernetes支持部署和回滚。它可以通过配置文件的描述,去控制容器的状态,并且支持指定版本的回滚。
③:kubernetes支持弹性伸缩。可以通过指标去配置一个自动伸缩的机制和策略,来应对突发流量。
④:kubernetes支持容器的配额管理。为每个容器指定所需的CPU、内存和磁盘等资源。使用request和limit做资源的软性限制和硬性限制。
⑤:kubernetes支持故障的发现和自我修复。它可以检查不符合运行状态检查的容器,并且可以进行计划重启或者强制重启容器。
⑥:kubernetes支持密钥和配置管理。kubernetes提供secret和configmap来管理密钥信息和配置信息。登录私有注册中心的账户名和密码可以通过secret去管理,不同的版本之间的配置可以通过配置管理去实现。
⑦:kubernetes支持多种数据卷类型。数据卷也就是volume,支持集中式和分布式存储。
kubernetes不支持的内容:
①:不能去限制应用程序的类型。如果应用程序能够在容器中运行,它就可以在kubernetes中运行。
②:不能部署源码,也不能构建应用。
③:不提供应用级别的服务作为内置服务。
~~~~我是华丽的分隔线~~~
kubernetes的组件:
kubernetes分成master控制节点和work node工作负载节点。
kubernetes master节点,也就是控制平面,它是集群的管理角色。kubernetes master节点上的组件:
①:kube-apiserver:负责公开kubernetes API,负责接收请求的工作,对kubernetes集群的任何操作,都需要通过kube-apiserver去调用和实现。
②:etcd:etcd是一个高可用的键值对数据库,用来存储kubernetes集群的所有数据。
③:
kube-scheduler:kube-scheduler是一个调度器,调度pod到节点上去运行。调度新创建的和未指定运行节点的pod到节点上。master节点只做管理,不做pod的运行节点。
④:
kube-controller-manager:kube-controller-manager负责运行控制器进程。
控制器包括:
节点控制器,节点出现故障的时候负责通知。
任务控制器,创建pod来执行任务,任务包括job和cronjob。
端点控制器,填充端点对象,加入service或者pod。查看service或者pod的详情,每个pod都是一个服务端点endpoint。
副本控制器:指定需要创建pod的副本数,确保pod的实际副本数与预期副本数保持一致。
服务账户与令牌控制器:kubernetes的隔离机制是基于命名空间namespace的,默认命名空间是default,不同的应用部署在不同的命名空间。服务账户和命名控制器会为命名空间创建对应的的默认账户和API的访问凭据,命名空间必须有一个默认的账户。
~~~
Worker node上的组件:
①:kubelet:在kubernetes集群的每个节点上运行,保证容器运行在pod中,docker的最小调度单元是容器,kubernetes的最小调度单位是pod,一个pod可以运行多个容器,kubelet确保容器运行在pod当中。kubelet配合kubernetes master节点管理worker node节点,向kubernetes master节点报告worker node节点的信息。当worker node节点加入kubernetes 集群时,kubelet会报告运行在worker node节点中的容器。kubelet会通过心跳定期向kubernetes master报告worker node节点的运行状态,如果超时,kubernetes master就会判断worker node节点失灵,并且调度worked node节点上的pod到其他worker node节点上去运行。
②:kube-proxy:kube-proxy是kubernetes 集群中每个节点上运行的网络代理,是实现kubernetes service概念的一部分。每一个service都是一个微服务,它离不开kube-proxy。kube-proxy维护节点上的网络规则,这些网络规则允许从集群内部或者外部的网络与pod进行通信。我们需要访问pod,必须需要kube-proxy进行工作。如果没有kube-proxy,我们要访问我们的pod是做不到的。
③:容器运行时:一般是docker或者containerd,或者是符合kubernetes容器运行时接口规范的容器运行时,例如:dockercri-dockerd。
鼓励的话语:不屈不挠的精神,是战无不胜的法宝!
- 上一篇: 超详细的Socket通信原理和实例讲解
- 下一篇: 30分钟了解K8S(30分钟了解宋朝)
猜你喜欢
- 2025-03-20 Activemq 常见问题解决办法(activemq 启动报错)
- 2025-03-20 一文实战K8S中的服务发现和负载均衡
- 2025-03-20 这样构建 K8s 中间件运维平台,运维真的能少遭很多罪……
- 2025-03-20 K8S工作原理详解(图文全面总结)(k8s基本操作)
- 2025-03-20 K8S调试利器:telepresence2使用文档
- 2025-03-20 k8s面试题汇总(k8s面试题目详解)
- 2025-03-20 Java基础教程:k8s快速入门(k8s jvm参数)
- 2025-03-20 线上 K8s 集群性能评估、基础服务部署调优
- 2025-03-20 K8s入门教程:10分钟带你速览全程(k8s实战教程)
- 2025-03-20 微服务之——K8S基本概念+组件(基于k8s的微服务实例)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)