K8s安装部署
时间: 2025-07-15 12:57:47 浏览: 4
### Kubernetes (K8s) 的安装与部署
#### 1. 前置条件
在开始 K8s 集群的安装之前,需确保所有节点满足以下前置条件:
- **操作系统版本**: 推荐使用 CentOS 或 Ubuntu 系统。
- **硬件需求**: 至少两台服务器(一台作为 Master 节点,其他作为 Worker 节点),每台至少具备 2GB RAM 和双核 CPU。
- **网络互通**: 所有节点之间能够通过 IP 地址互相访问。
为了保证集群正常工作,需要完成以下操作:
- **关闭 Swap 分区**
kubelet 要求必须禁用交换分区。可以通过以下命令实现临时和永久关闭 Swap[^4]:
```bash
# 临时关闭
swapoff -a
# 永久关闭
sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
```
- **关闭 SELinux**
设置 SELinux 到 permissive 模式以避免权限冲突[^3]:
```bash
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
```
- **关闭防火墙**
如果不需要额外的安全策略,则应关闭防火墙服务[^4]:
```bash
systemctl stop firewalld
systemctl disable firewalld
```
#### 2. 安装 Docker 容器运行时
Kubernetes 使用容器运行时来管理 Pod 中的容器,默认推荐使用 Docker。以下是安装 Docker 的方法[^1]:
```bash
yum install -y docker
systemctl enable docker && systemctl start docker
```
#### 3. 添加 Kubernetes YUM 源并安装组件
为简化安装过程,建议配置国内镜像源以提高下载速度[^3]:
```bash
cat <<EOF > kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
mv kubernetes.repo /etc/yum.repos.d/
```
随后,在所有节点上安装所需的 Kubernetes 组件:
```bash
yum install -y kubelet-1.22.4 kubeadm-1.22.4 kubectl-1.22.4
systemctl enable kubelet
```
#### 4. 初始化 Master 节点
在主节点上执行 `kubeadm init` 来初始化集群。此过程中会指定 API Server 监听地址、Pod CIDR 等参数[^1][^2]:
```bash
kubeadm init \
--apiserver-advertise-address=<Master_IP> \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.22.4 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=172.20.0.0/16
```
完成后,按照提示将管理员账户配置到当前用户的上下文中:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
#### 5. 部署 CNI 插件
Kubernetes 默认不提供网络功能,因此需要手动安装一个支持其网络模型的插件,如 Flannel 或 Calico[^1]:
```bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
#### 6. 加入 Worker 节点
在每个 Worker 节点上执行由 `kubeadm init` 输出的加入命令,通常形式如下[^1]:
```bash
kubeadm join <Master_IP>:<Port> --token <Token> --discovery-token-ca-cert-hash sha256:<Hash>
```
#### 7. 验证集群状态
最后验证整个集群的状态是否正常:
```bash
kubectl get nodes
kubectl get pods --all-namespaces
```
---
###
阅读全文
相关推荐











