安装与环境搭建
掌握三种主流安装方式
能独立搭建学习环境和生产集群
能根据场景选择合适的安装方案
核心讲解
(1)三种安装方式对比
表格
安装方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
minikube | 单节点集群,一键安装,简单易上手 | 单节点,功能有限 | 本地学习、开发调试 |
kubeadm | 官方标准工具,生产级集群 | 需要多台机器,配置稍复杂 | 生产环境、正式集群部署 |
二进制安装 | 完全可控,可深度定制 | 步骤繁琐,维护难度高 | 定制化集群、原理学习 |
方式一:minikube 本地学习环境
操作步骤
前置条件:安装 Docker/containerd、CPU 开启虚拟化
安装 minikube
# Windows
winget install minikube
# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
mv minikube-linux-amd64 /usr/local/bin/minikube
启动集群
minikube start --driver=docker --kubernetes-version=v1.29.0
验证集群
minikube status
kubectl cluster-info
打开可视化控制台
minikube dashboard
方式二:kubeadm 生产标准集群
环境要求
至少 3 台服务器:2 核 4G 以上配置
系统:Ubuntu 22.04 / CentOS 7+
关闭防火墙、关闭 swap、设置主机名、时间同步
操作步骤
# ===== 所有节点统一执行 =====
# 1. 关闭防火墙、SELinux、swap
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 2. 时区与时间同步
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true
# 3. 安装 containerd 运行时
apt update
apt install -y containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
systemctl enable --now containerd
# 4. 添加 Kubernetes 官方软件源
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
# 5. 安装指定版本组件
apt update
apt install -y kubeadm=1.29.0-00 kubelet=1.29.0-00 kubectl=1.29.0-00
apt-mark hold kubeadm kubelet kubectl
systemctl enable kubelet
# ===== 主节点执行 =====
# 初始化集群
kubeadm init \
--kubernetes-version v1.29.0 \
--apiserver-advertise-address=主节点内网IP \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12
# 配置 kubectl 访问凭证
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
# 安装 Calico 网络插件(集群网络方案)
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml
# 验证节点状态,Ready 即为成功
kubectl get nodes
# ===== 工作节点加入集群 =====
# 工作节点执行主节点初始化成功后输出的 join 命令,格式如下
kubeadm join 主节点IP:6443 \
--token xxxxx.xxxxxxxxxxxx \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxx
```
##### 安装后验证
```
# 查看集群状态
kubectl cluster-info
# 查看所有节点状态
kubectl get nodes -o wide
# 查看系统命名空间 Pod
kubectl get pods -n kube-system
`
---
#### 方式三:二进制高可用部署
生产环境定制化部署,手动部署每个控制平面组件,etcd 独立集群,适合对可控性要求极高的场景。一般企业场景推荐 kubeadm 搭建,二进制部署仅用于深度定制场景。
常见误区
1. **minikube 是生产集群**:minikube 是单节点学习开发环境,绝对不能用于生产
2. **不关闭 swap 就能装**:K8s 要求关闭 swap,否则 kubelet 启动失败
3. **网络插件可选装**:必须安装网络插件,否则 Pod 之间无法通信,集群不会 Ready
4. **版本随便混用**:所有节点版本必须一致,主从版本差不能超过一个小版本
5. **节点时间不同步**:集群对时间同步要求很高,时间偏差大了会出现各种认证异常
### 课后练习
1. 用 minikube 搭建本地单节点集群
2. 用 kubeadm 搭建一主两从的标准集群
3. 安装 Calico 网络插件,验证节点 Ready
4. 查看集群信息和系统 Pod 运行状态
