Kubernetes基础新手秒懂
一、K8S简介:
Kubernetes(简称 K8s)名称由来:Kubernetes 首尾字母是 K、s,中间有 8 个字母简称 K8s。
主要作用:解决 Docker 单机无法搞定的集群管理、高可用、扩缩容等问题。
一句话概括就是Docker 负责把应用装进 “集装箱”,K8s 负责在多台机器上统一调度、管理、运维这些集装箱。
二、K8s的核心功能:
1.自动自愈:容器崩溃、节点宕机,自动重启 / 迁移
2.弹性扩缩容:根据 CPU / 流量自动增减副本
3.滚动更新 & 回滚:不停机升级,一键回退
4.服务发现 & 负载均衡:统一入口,自动分发流量
5.配置与密钥管理:配置和代码分离,安全管理密码
6.跨环境一致:本地、测试、生产环境运行一致
三、核心架构:Master + Node
K8s 采用 主从架构,分为控制平面(Master)和工作节点(Node)。
1. Master 节点(大脑)
负责整个集群的控制与决策:
- kube-apiserver:集群唯一入口,所有操作都走它
- etcd:高可用键值存储,保存集群所有状态
- kube-scheduler:把 Pod 调度到合适的 Node
- kube-controller-manager:保证集群状态符合期望(副本数、节点健康等)
2. Node 节点(工人)
负责真正运行容器:
- kubelet:节点代理,管理本机 Pod 生命周期
- kube-proxy:维护网络规则,实现 Service 负载均衡
- 容器运行时:Docker/containerd,负责拉镜像、起容器
四、必须掌握的核心资源对象
1. Pod
- K8s 最小部署单元,不是容器!
- 一个 Pod 里可包含一个 / 多个容器,共享网络和存储。
2. Deployment
- 最常用的无状态应用控制器。
- 管理 Pod:创建、扩缩容、更新、回滚。
3. Service
- 给一组 Pod 提供固定访问入口。
- 实现负载均衡,屏蔽 Pod IP 变化。
4. Ingress
- 集群外部访问入口,通过域名 / 路径路由到不同 Service。
5. ConfigMap / Secret
- ConfigMap:存普通配置
- Secret:存密码、密钥等敏感信息
6. Namespace
- 集群资源隔离,用于区分环境:dev、test、prod。
五、最常用 kubectl 命令
# 查看节点
kubectl get nodes
# 查看 Pod
kubectl get pods kubectl get pods -n 命名空间
# 查看 Deployment/Service
kubectl get deploy kubectl get svc
# 创建/更新资源
kubectl apply -f xxx.yaml
# 查看日志
kubectl logs -f pod名
# 进入容器
kubectl exec -it pod名 -- /bin/bash
# 扩缩容
kubectl scale deploy 部署名 --replicas=5 #
删除资源 kubectl delete -f xxx.yaml
六、新手便于记忆简单类比
Docker = 集装箱: 把货物(你的应用)打包好,标准、统一、在哪都能运。
Pod = 一组集装箱(共享一台小车): 它是 K8s 里最小的运输单元。
几个关系特别近的集装箱(容器)会放在一起,共享小车的空间和网络,一起出发、一起到达。
Node = 一台货车 / 服务器: 货车负责拉着小车(Pod)在路上跑。
一辆货车能拉很多个 Pod,就像一台服务器能跑很多个容器。
Deployment = 车队调度员: 你告诉调度员:“我要 3 辆车 在路上跑。”
调度员就会一直盯着:
少了一辆 → 立刻补发一辆
坏了一辆 → 马上换新的
要升级 → 一辆一辆换,不中断送货
Service = 统一收货地址 : 货车(Node)和小车(Pod)经常换、IP 会变,客户不可能记一堆地址。
Service 就给你一个固定地址,不管后面哪辆车在跑,客户只找这个地址,流量自动分给健康的车。
K8s 集群 = 智能物流港: 里面有调度中心、货车队、集装箱、统一出入口……
它自动管:谁来运、运多少、坏了怎么办、怎么最省资源。
它们之间的关系(超简单版)
- 先用 Docker 把应用做成集装箱。
- 几个集装箱组成一个 Pod,共享一台小车。
- Pod 放在 Node(货车 / 服务器) 上运行。
- Deployment(调度员) 保证永远有足够的 Pod 在跑。
- Service 给外面一个固定地址,让用户能稳定访问。
- 这一整套系统,就是 K8s 集群。
更多推荐
所有评论(0)