Kubernetes(简称 K8s)是容器编排领域的事实标准,能够自动化容器的部署、扩缩容、运维和故障恢复。本文从环境搭建、核心概念、实战操作到高级特性,全方位讲解 K8s 的使用,适合零基础入门到企业级实战。
一、前置知识与环境准备
1. 核心概念预热(新手必看)
先掌握 3 个核心概念,避免后续操作迷茫:
- Pod:K8s 最小部署单元,可包含 1 个或多个容器,共享网络和存储;
- Node:运行 Pod 的服务器(物理机/虚拟机),分为 Master(控制节点)和 Worker(工作节点);
- Controller:控制器,用于管理 Pod 的生命周期(如 Deployment 确保 Pod 数量稳定)。
2. 环境要求
| 角色 | 配置建议 | 系统要求 |
|---|---|---|
| Master 节点 | 2 核 4G 以上,1 台 | CentOS7+/Ubuntu20.04+,64 位 |
| Worker 节点 | 2 核 2G 以上,至少 1 台(推荐 2+ 台) | 同上 |
| 网络 | 所有节点互通,禁用防火墙/SELinux | – |
3. 环境初始化(所有节点执行)
# 1. 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
# 2. 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
# 3. 关闭 swap(K8s 强制要求)
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
# 4. 配置主机名(Master 节点示例,Worker 节点改名称)
hostnamectl set-hostname k8s-master
# 配置 hosts 解析(所有节点)
cat>> /etc/hosts <<EOF
192.168.1.100 k8s-master
192.168.1.101 k8s-worker1
192.168.1.102 k8s-worker2
EOF
# 5. 配置内核参数
cat> /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
4. 安装 Docker/Containerd(容器运行时)
K8s 需要容器运行时,推荐 Containerd(Docker 已逐步淘汰):
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y containerd.io
-p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i /etc/containerd/config.toml
sed -i /etc/containerd/config.toml
systemctl restart containerd && systemctl containerd

