【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无疑是一个值得深入学习和应用的选择。

相关推荐
大江东去了吗3 小时前
k8s HPA
云原生·容器·kubernetes
花菜回锅肉3 小时前
开源可视化大屏superset Docker环境部署
数据仓库·docker·容器·开源·superset
wd5205214 小时前
常用环境部署(十七)——Docker安装pritunl+openvpn
运维·docker·容器
Watermelo6175 小时前
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
java·spring boot·docker·微服务·云原生·容器·devops
Richardlygo6 小时前
编写Dockerfile第二版
docker·容器
码农阿豪6 小时前
OpenObserve云原生可观测平台本地Docker部署与远程访问实战教程
docker·云原生·容器
是芽芽哩!6 小时前
【Kubernetes】常见面试题汇总(五)
云原生·容器·kubernetes
何遇mirror6 小时前
深入解析 Docker exec 命令
容器
芦苇浮绿水8 小时前
记一次升级 Viper、ETCD V3操作Toml
数据库·kubernetes·go·etcd
golove66610 小时前
Docker进入容器运行命令
docker·容器