【k8s】什么是k8s


这是我父亲 日记里的文字

这是他的生命 留下留下来的散文诗

几十年后 我看着泪流不止

可我的父亲已经 老得像一个影子

🎵 许飞《父亲写的散文诗》


Kubernetes,常被简称为K8s,是一个开源的容器编排平台,最初由Google设计并开发,现在由Cloud Native Computing Foundation(CNCF)维护。Kubernetes旨在帮助用户自动化部署、扩展和管理容器化应用程序。

Kubernetes 的核心概念

1. 节点(Node)

节点是Kubernetes集群中的一台虚拟机或物理机,每个节点都包含运行Pod所需的必要服务,包括容器运行时(如Docker)、Kubelet和Kube-proxy。

2. Pod

Pod是Kubernetes中的最小部署单元,一个Pod可以包含一个或多个容器。这些容器共享网络命名空间、存储卷和配置数据。Pod中的所有容器一起作为一个应用实例运行。

3. 控制器(Controller)

控制器是Kubernetes中的核心组件之一,用于管理Pod和其他对象的状态。常见的控制器包括:

  • Deployment:管理无状态应用的Pod副本。
  • StatefulSet:管理有状态应用的Pod副本,确保Pod的顺序和持久性。
  • DaemonSet:确保所有或一些节点上运行一个Pod副本。
  • ReplicaSet:确保指定数量的Pod副本在集群中运行。
4. 服务(Service)

服务是Kubernetes中一种稳定的网络端点,用于将一组Pod暴露为网络服务。服务定义了Pod的逻辑集合,并提供了负载均衡和服务发现功能。

5. 配置和存储
  • ConfigMap:用于存储非机密的配置数据。
  • Secret:用于存储敏感信息,例如密码、OAuth令牌和SSH密钥。
  • PersistentVolume(PV):集群中预配置的存储资源。
  • PersistentVolumeClaim(PVC):用户对存储资源的请求。

Kubernetes 的架构

1. 主节点(Master Node)

主节点负责管理集群,包括调度、控制和监视所有的工作节点。主要组件包括:

API Server:集群的前端,所有的操作都通过API Server进行。

Scheduler:负责将Pod分配到适当的节点上。

Controller Manager:运行控制器以调节集群的状态。

etcd:分布式键值存储,用于存储集群的所有数据。

2. 工作节点(Worker Node)

工作节点运行Pod,并由主节点管理。主要组件包括:

  • Kubelet:负责在节点上运行和管理Pod。
  • Kube-proxy:负责维护网络规则,允许Pod间通信。
  • Container Runtime:运行和管理容器的环境,如Docker、containerd等。

Kubernetes 的功能和优势

1. 自动化部署和管理

Kubernetes可以自动化应用程序的部署、管理和扩展。通过定义期望状态,Kubernetes可以自动调整实际状态与期望状态一致。

2. 水平扩展

Kubernetes可以根据负载情况自动扩展或缩减应用程序的实例数量,以保证应用程序的高可用性和性能。

3. 负载均衡

Kubernetes可以自动分配网络流量到不同的Pod实例,提供负载均衡功能,确保应用程序的可靠性和可用性。

4. 自愈能力

当Pod或节点出现故障时,Kubernetes可以自动重启或重新调度这些实例,以确保应用程序的持续运行。

5. 滚动更新和回滚

Kubernetes支持无中断的应用程序更新,同时提供回滚机制,确保在出现问题时能够快速恢复到稳定版本。

结论

Kubernetes作为一个强大且灵活的容器编排平台,已经成为现代应用程序部署和管理的标准。它提供了丰富的功能和工具,使得开发者和运维人员能够高效地管理复杂的容器化应用环境。如果你正在寻找一种可靠的方式来自动化管理容器,Kubernetes无疑是一个值得深入学习和应用的选择。

相关推荐
Anarkh_Lee5 小时前
Neo4j在win下安装教程(docker环境)
docker·容器·neo4j
迷路的小绅士6 小时前
防火墙技术深度解析:从包过滤到云原生防火墙的部署与实战
网络安全·云原生·防火墙技术·包过滤防火墙·状态检测防火墙
正经教主6 小时前
【问题】解决docker的方式安装n8n,找不到docker.n8n.io/n8nio/n8n:latest镜像的问题
运维·docker·容器·n8n
joker_zsl8 小时前
docker的安装和简单使用(ubuntu环境)
运维·docker·容器
啥都想学的又啥都不会的研究生8 小时前
Kubernetes in action-初相识
java·docker·微服务·容器·kubernetes·etcd·kubelet
Leon-zy9 小时前
【云计算】云计算中IaaS、PaaS、SaaS介绍
云原生·云计算·paas
赵我说的做_life10 小时前
基于Docker的Flask项目部署完整指南
docker·容器·flask
江畔独步11 小时前
docker容器监控&自动恢复
docker·容器·eureka
iangyu11 小时前
centos7部署k8s集群
云原生·容器·kubernetes
时迁24713 小时前
【k8s】k8s是怎么实现自动扩缩的
云原生·容器·kubernetes·k8s