K8s 基本概念梳理

张开发
2026/4/18 18:04:02 15 分钟阅读

分享文章

K8s 基本概念梳理
pod运行的最小单元可以一个容器或是几个容器。 ⼀个 Pod 可以包含⼀个或多个紧密关 联的容器它们共享相同的⽹络命名空间IP 地址和存储卷并在同⼀个宿 主机上运⾏。一般一个pod 只运行一个容器。节点nodeNode是⼀个运⾏着Kubernetes节点软件的物理机器或虚拟机每个Node 负责运⾏Pod中的容器并由Kubernetes控制平⾯管理 Node是Kubernetes集群中的⼯作节点它实际执⾏应⽤程序⼯作负载并提 供运⾏环境 。Service (svc)Service 是将运⾏在⼀个或⼀组 Pod 上的⽹络应⽤程序公开为⽹络服务的 ⽅法。因为pod是容易被创建和销毁的这就导致pod的ip端口发生变化因此需要SVC 来对外暴露ip 地址。分为内部服务和外部服务。 外部服务常用的类型:node:port:在节点上开放一个端口再将这个端口映射到service 上这样就可以再节点上访问service了。生产上用域名访问服务器这就得使用Ingress (ing)。Ingress (ing)可以通过Ingress资源来配置不同的转发规则从⽽达到根据不 同的规则设置访问集群内不同的Service所对应的后端Pod。也可以配置域名。也可以配置负载均衡SSL 证书等。上图是一个基于 node:prot 的集群架构图展示上述概念的关联关系。配置信息和服务分离配置信息和服务分录目的是让应用变得“一次构建到处运行”。为了实现配置信息和服务分离k8s提供了相关组件有一些敏感信息还提供了Secret基于base64编码加密的配置文件。ConfigMap (cm)⽤来将⾮机密性的数据保存到键值对中使⽤ 时 Pod 可以将其⽤作环境变量命令⾏参数或者存储卷中的配置⽂件。ConfigMap 将你的环境配置信息和容器镜像解耦便于应⽤配置的修改。SecretSecret 是⼀种包含少量敏感信息例如密码令牌或密钥的对象 这样的信 息可能会被放在 Pod 规约中或者镜像中。数据得持久化存储Volume (vol)卷Volume⽤于 Pod 内部的数据存储 Pod 容器内部数据是可以共享 的其⽣命周期与所属 Pod ⽣命周期相同。Deployment容器副本控制、更新Deployment 是⼀种Pod 管理⽅式它可以指挥Kubernetes 如何创建和更 新你部署的应⽤实例创建Deployment。 后Kubernetes master 会将应⽤。 程序调度到集群中的各个节点上⼀般⽤来部署⽆状态应⽤。节点发生故障时定义管理应用程序的副本数量还可以滚动跟新优雅停机。可以看作时pod上的另一层抽象。可以定义多个副本来提高吞吐量保证高可用。StatefulSet (sts) (有状态的容器使用)StatefulSet 是⽤来管理有状态应⽤的⼯作负载 API 对象。 StatefulSet ⽤来管理某 Pod 集合的部署和扩缩 并为这些 Pod 提供持久 存储和持久标识符。数据库、redis、消息队列等容器使用该服务进行备份可以提供数据存储和持久标识符。 但是部署比较复杂.数据库这类服务应该在集群外部署。

更多文章