认识
官网:https://kubernetes.io/
文档:https://kubernetes.io/docs/home/
仓库:https://github.com/kubernetes/kubernetes
Kubernetes 是个开源的容器编排平台,用于自动化管理大规模容器化应用的部署、扩展和运维。它支持多主机环境,提供负载均衡、服务发现、故障恢复和存储编排等功能,并通过声明式配置和标准化 API 简化应用管理。Kubernetes 具有高度可扩展性,可运行在云平台、物理服务器及虚拟机上,并能与 Prometheus 等工具集成。其强大的编排能力和灵活的架构帮助开发与运维团队提升应用可靠性及扩展性,有效解决微服务场景下容器管理的复杂性问题。简而言之,Kubernetes 是个容器编排平台,能够帮助我们编排和管理大量的容器应用。
组成
在 Kubernetes 中,的各个组件及其作用;
下图源自官方文档:
/pasted_image001.png)
Kubernetes Control Plane
etcd
分布式高可用键值存储,集群持久化组件。存储每个节点会用到的配置信息,包含敏感信息;
该组件只能被 API Server 访问;
Q:为什么 Kubernetes 选择 etcd 作为存储:?
A:Kubernetes Book/How Does Kubernetes Use etcd?;TechTarget/How does Kubernetes use etcd?
API Server(kube-apiserver)
使用 API 提供集群中所有操作,即集群所有操作通过 API 接口实现,所有组件均与 API Server 交互;
Scheduler(kube-scheduler)
在主节点中关键组件,负责分发工作负载。换句话说,它负责将 POD 分配到可用节点;
Static Pods
所谓静态 Pod,是指由 kubelet 直接管理的 Pod 实例;
Kubernetes Worker Node
kubelet
主要的节点代理,运行在每个节点中。它负责接收 PodSpec 定义(主要来自于 API Server 服务),然后确保节点中的 POD 运行及健康;
kube-proxy
网络代理,运行在各节点中,负责进行流量转发、轮寻等等;
CRI (Container Runtime Interface)
Container Runtime
容器运行环境,通常为 Docker 等等容器运行环境;
性质
Run Anywhere
Service Topology
Storage orchestration
Automated rollouts and rollbacks
IPv4/IPv6 dual-stack
Service discovery and load balancing
Automatic bin packing
Self-healing
Secret and configuration management
Batch execution
Horizontal scaling
提供日志记录 Logging
Logging Architecture https://kubernetes.io/docs/concepts/cluster-administration/logging/
/var/log/pods
构建
WIP
应用
微服务架构
持续交付
参考
Kubernetes Components
Kubernetes in three diagrams
Kubernetes Reference/kube-proxy
Kubernetes Reference/kubelet
Kubernetes – Cluster Architecture
Wikipedia/Kubernetes
Kubernetes 是什么,简介,相关资料
K8S 解决了哪些问题?
Kubernetes 解决了 Docker 使用中的哪些问题?
选择什么样的 K8S?这不是一个问题!
kubernetes/Production-Grade Container Orchestration