介绍
Kubernetes 是一个容器编排平台,能够实现容器化应用程序的自动化部署、扩展和管理。本挑战将带你探索 Kubernetes 的架构,包括组成 Kubernetes 集群的各个组件及其相互作用方式。
Kubernetes 是一个容器编排平台,能够实现容器化应用程序的自动化部署、扩展和管理。本挑战将带你探索 Kubernetes 的架构,包括组成 Kubernetes 集群的各个组件及其相互作用方式。
Kubernetes 控制平面(Control Plane)负责管理集群的整体状态,以及应用程序的部署和扩展。控制平面组件包括:
你的任务是获取并显示控制平面组件的状态,包括 kube-apiserver、etcd、kube-scheduler 和 kube-controller-manager。
kubectl 命令获取控制平面组件的状态。/home/labex/project 目录下执行命令。以下是获取控制平面组件状态时预期的输出示例:
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
scheduler Healthy ok
Kubernetes 节点(Node)组件运行在每个节点上,负责维护运行中的 Pod 并提供容器运行时环境。节点组件包括:
显示 Kubernetes 集群中正在运行的节点信息,包括节点名称、状态和其他相关详细信息。
kubectl 命令列出 Kubernetes 集群中的节点。/home/labex/project 目录下执行命令。以下是显示节点信息时预期的输出示例:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 2m52s v1.26.1
Pod 是 Kubernetes 中最小的可部署单元,代表集群中运行进程的一个实例。每个 Pod 由一个或多个容器组成,这些容器共享相同的网络命名空间和存储卷。
simple-pod.yaml 的文件,配置一个运行 Nginx 容器的 Pod。kubectl 命令部署该 Pod。/home/labex/project 目录下创建 simple-pod.yaml 文件,配置一个名为 simple-pod 且使用 nginx 镜像的 Pod。kubectl 命令根据 YAML 文件创建 Pod。kubectl 命令列出集群中运行的 Pod。以下是部署并显示 Pod 时预期的输出示例:
pod/simple-pod created
NAME READY STATUS RESTARTS AGE
simple-pod 1/1 Running 0 29s
Kubernetes 服务(Service)是一种抽象,它定义了一组 Pod 的逻辑集合以及访问它们的策略。服务组件包括:
nginx-service.yaml 的文件,为 Nginx Pod 配置服务。kubectl 命令部署该服务。/home/labex/project 目录下创建 nginx-service.yaml 文件,配置一个名为 nginx-service 且暴露 80 端口的服务。kubectl 命令根据 YAML 文件创建服务。kubectl 命令列出集群中运行的服务。以下是显示服务信息时预期的输出示例:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m42s
nginx-service ClusterIP 10.96.184.71 <none> 80/TCP 4s
在本挑战中,我们探索了 Kubernetes 的架构,包括控制平面、节点、Pod 和服务组件。我们学习了如何检查各种组件的状态,如何创建简单的 Pod 和服务,以及如何将 Pod 暴露给外部应用。理解 Kubernetes 集群的组成部分及其交互方式,为部署和管理容器化应用程序奠定了坚实的基础。