kubernetes Cluster Overiview

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: kubernetes Cluster Overiview

kubernetes Cluster Overiview

tags: cluster

文章目录

image.png

1. 什么是 Kubernetes 集群?

Kubernetes 集群 是一组运行容器化应用程序的节点。容器化应用程序将应用程序与其依赖项和一些必要的服务打包在一起。它们比虚拟机更轻巧、更灵活。通过这种方式,Kubernetes 集群允许更轻松地开发、移动和管理应用程序。


Kubernetes 集群允许容器跨多台机器和环境运行:虚拟机、物理机、基于云的和本地。与虚拟机不同,Kubernetes 容器不限于特定的操作系统。相反,它们能够共享操作系统并在任何地方运行。


Kubernetes 集群由一个主节点和多个工作节点组成。这些节点可以是物理计算机或虚拟机,具体取决于集群。


master nodes 控制集群的状态;例如,哪些应用程序正在运行以及它们对应的容器映像。主节点是所有任务分配的来源。它协调流程,例如:


调度 和扩展应用程序

维护 集群的状态

实施 更新

worker nodes 是运行这些应用程序的组件。 工作节点执行主节点分配的任务。它们可以是 虚拟机 或物理计算机,都作为一个系统的一部分运行。


Kubernetes 集群必须至少有一个主节点和一个工作节点才能运行。对于生产和登台,集群分布在多个工作节点上。对于测试,组件可以全部运行在同一个物理或虚拟节点上。


namespace 是 Kubernetes 用户在一个物理集群中组织许多不同集群的一种方式。 命名空间使用户能够通过资源配额在不同团队之间划分物理集群内的集群资源。因此,它们非常适合涉及复杂项目或多个团队的情况。

2. 集群组成

Kubernetes 主要由以下几个核心组件组成:


etcd 保存了整个集群的状态;

apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

kubelet 负责维护容器的生命周期,同时也负责 Volume(CSI)和网络(CNI)的管理;

Container runtime 负责镜像管理以及 Pod 和容器的真正运行(CRI);

kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡;

除了核心组件,还有一些推荐的插件,其中有的已经成为 CNCF 中的托管项目:


CoreDNS 负责为整个集群提供 DNS 服务

Ingress Controller 为服务提供外网入口

Prometheus 提供资源监控

Dashboard 提供 GUI

Federation 提供跨可用区的集群

3. 集群应用

要使用 Kubernetes 集群,您必须首先确定其所需状态。Kubernetes 集群的期望状态定义了许多操作元素,包括:


Applications and workloads

images

Resources

replicas Quantity

为了定义所需的状态,JSON 或 YAML 文件(称为清单)用于指定应用程序类型和运行系统所需的副本数。


开发人员使用 Kubernetes API 来定义集群的期望状态。这种开发人员交互使用命令行界面 (kubectl) 或利用 API 直接与集群交互以手动设置所需的状态。然后,主节点将通过 API 将所需状态传达给工作节点。


Kubernetes 通过 Kubernetes 控制平面自动管理集群以使其与所需状态保持一致。Kubernetes 控制平面的职责包括调度集群活动以及注册和响应集群事件。


Kubernetes 控制平面运行连续的控制循环,以确保集群的实际状态与其期望的状态相匹配。例如,如果您部署一个应用程序以使用五个副本运行,但其中一个崩溃了,Kubernetes 控制平面将注册此崩溃并部署一个额外的副本,以便保持五个副本的期望状态。


自动化通过 Pod 生命周期事件生成器或 PLEG 进行。这些自动任务可以包括:


启动 和重启容器

调整 应用程序的副本数

验证 容器镜像

启动 和管理容器

实施 更新和回滚

4. 集群创建

  • 手动创建 kubernetes 集群
  • minikube 创建 kubernetes 集群
  • kind 创建 kubernetes 集群
  • openshift

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
Kubernetes NoSQL 测试技术
在 K8S 中快速部署 Redis Cluster & Redisinsight
在 K8S 中快速部署 Redis Cluster & Redisinsight
1250 0
在 K8S 中快速部署 Redis Cluster & Redisinsight
|
10月前
|
存储 Kubernetes 调度
什么是 Kubernetes cluster 的 Node affinity
什么是 Kubernetes cluster 的 Node affinity
|
Kubernetes API 容器
Kubernetes CKS【10】---Cluster Hardening - Restrict API Access
Kubernetes CKS【10】---Cluster Hardening - Restrict API Access
Kubernetes CKS【10】---Cluster Hardening - Restrict API Access
|
JSON Kubernetes 监控
kubernetes kubelet Overiview
kubernetes kubelet Overiview
kubernetes kubelet Overiview
|
Kubernetes 容器
Kubernetes【升级】 CKS 2021【11】---Cluster Hardening - Upgrade Kubernetes
Kubernetes【升级】 CKS 2021【11】---Cluster Hardening - Upgrade Kubernetes
Kubernetes【升级】 CKS 2021【11】---Cluster Hardening - Upgrade Kubernetes
|
Kubernetes Cloud Native 安全
Kubernetes CKS 2021【7】---Cluster Setup - Verify Platform
Kubernetes CKS 2021【7】---Cluster Setup - Verify Platform
Kubernetes CKS 2021【7】---Cluster Setup - Verify Platform
|
Kubernetes Cloud Native 安全
Kubernetes CKS 2021【5】---Cluster Setup - Node Metadata
Kubernetes CKS 2021【5】---Cluster Setup - Node Metadata
Kubernetes CKS 2021【5】---Cluster Setup - Node Metadata
|
Kubernetes 容器
Kubernetes CKS 2021【4】---Cluster Setup - Secure Ingress
Kubernetes CKS 2021【4】---Cluster Setup - Secure Ingress
Kubernetes CKS 2021【4】---Cluster Setup - Secure Ingress
|
Web App开发 弹性计算 Kubernetes
Kubernetes CKS 2021【3】---Cluster Setup - Dashboard
Kubernetes CKS 2021【3】---Cluster Setup - Dashboard
Kubernetes CKS 2021【3】---Cluster Setup - Dashboard
|
SQL Kubernetes Ubuntu
在 Google Kubernetes Cluster 上使用 HANA Expression Database Service
在 Google Kubernetes Cluster 上使用 HANA Expression Database Service
179 0
在 Google Kubernetes Cluster 上使用 HANA Expression Database Service