Files
docker_practice/12_orchestration/kubernetes/intro.md
2026-02-12 16:51:50 -08:00

91 lines
2.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Kubernetes 简介
Kubernetes 简介 示意图如下
![](./_images/kubernetes_logo.png)
### 什么是 Kubernetes
Kubernetes常简称为 K8s Google 开源的容器编排引擎如果说 Docker 解决了"如何打包和运送集装箱"的问题那么 Kubernetes 解决的就是"如何管理海量集装箱的调度、运行和维护"的问题
它不仅仅是一个编排系统更是一个**云原生应用操作系统**
> **名字由来**Kubernetes 在希腊语中意为"舵手""飞行员"K8s 是因为 k s 之间有 8 个字母
---
### 为什么需要 Kubernetes
当我们在单机运行几个容器时Docker Compose 就足够了但在生产环境中我们需要面对
- **多主机调度**容器应该运行在哪台机器上
- **自动恢复**容器崩溃了怎么办节点挂了怎么办
- **服务发现**容器 IP 变了其他服务怎么找到它
- **负载均衡**流量大了如何分发给多个副本
- **滚动更新**如何不中断服务升级应用
Kubernetes 完美解决了这些问题
---
### 核心概念
#### Pod豆荚
Kubernetes 的最小调度单位一个 Pod 可以包含一个或多个紧密协作的容器共享网络和存储就像豌豆荚里的豌豆一样
#### Node节点
运行 Pod 的物理机或虚拟机
#### Deployment部署
定义应用的期望状态需要 3 个副本镜像版本为 v1K8s 会持续确保当前状态符合期望状态
#### Service服务
定义一组 Pod 的访问策略提供稳定的 Cluster IP DNS 名称负责负载均衡
#### Namespace命名空间
用于多租户资源隔离
---
### Docker 用户如何过渡
如果你已经熟悉 Docker学习 K8s 会很容易
| Docker 概念 | Kubernetes 概念 | 说明 |
|------------|----------------|------|
| Container | Pod | K8s 增加了一层 Pod 包装 |
| Volume | PersistentVolume | K8s 的存储更加抽象和强大 |
| Network | Service/Ingress| K8s 的网络模型更扁平 |
| Compose | Deployment + Service | 声明式配置的理念是一致的 |
---
### 架构
Kubernetes 也是 C/S 架构 **Control Plane控制平面** **Worker Node工作节点** 组成
- **Control Plane**负责决策API Server, Scheduler, Controller Manager, etcd
- **Worker Node**负责干活Kubelet, Kube-proxy, Container Runtime
---
### 学习建议
Kubernetes 的学习曲线较陡峭建议的学习路径
1. **理解基本概念**Pod, Deployment, Service
2. **动手实践**使用 Minikube Kind 在本地搭建集群
3. **部署应用**编写 YAML 部署一个无状态应用
4. **深入原理**网络模型存储机制调度算法
---
### 延伸阅读
- [Minikube 安装](../setup/README.md)本地体验 K8s
- [Kubernetes 官网](https://kubernetes.io/):官方文档