网站首页 > 精选文章 正文
有状态的服务比如数据库,无状态的服务比如网页。
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容器运行时接口规范的容器运行时,例如:docker?cri-dockerd。

鼓励的话语:不屈不挠的精神,是战无不胜的法宝!
猜你喜欢
- 2024-12-30 解决DNS解析故障的几种方法(dns解析出错,如果只有您有这个问题)
- 2024-12-30 《血源诅咒》服务器进入紧急维护状态 黑客干的?
- 2024-12-30 部分网友Apple ID无法登录 疑似苹果服务器出现故障
- 2024-12-30 HTTP 常见的五类状态码(2.http常见状态码有哪些,请写出至少7种?)
- 2024-12-30 ORACLE RAC 基础知识之查询状态(oracle rac状态查看)
- 2024-12-30 新手玩梦幻西游该如何选区,目前全区状态
- 2024-12-30 4、常见的 HTTP 状态码以及代表的意义(必会)
- 2024-12-30 怎么处理“DNS未响应”问题?聚名带着应对方案来了
- 2024-12-30 vCenter纳管ESXI主机出错(vsphere esxi的功能)
- 2024-12-30 网络连接存在大量time_wait和close_wait的原因以及解决方法
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)