搭建k8s
时间: 2025-05-14 22:48:38 浏览: 21
### 如何搭建 Kubernetes K8s 集群
#### 前置条件
在开始部署 Kubernetes 集群前,需确保所有节点满足以下基本要求[^3]:
- **操作系统**: CentOS 7.x (64位),推荐版本为最新稳定版。
- **硬件需求**:
- 至少 2 GB 或更多的 RAM;
- 至少 2 个 CPU 核心或更多;
- 硬盘空间至少 30 GB 或更大。
- **网络设置**:
- 所有机器之间的网络互通;
- 可以外网访问以拉取容器镜像;
- 关闭 swap 分区。
以下是集群中的角色分配示例:
| 角色 | IP 地址 | 组件 |
|------------|-----------------|-------------------------------------------|
| Master | 192.168.200.120 | Docker, kubectl, kubeadm, kubelet |
| Node1 | 192.168.200.121 | Docker, kubectl, kubeadm, kubelet |
| Node2 | 192.168.200.122 | Docker, kubectl, kubeadm, kubelet |
---
#### 初始化环境
为了顺利安装和运行 Kubernetes,需要完成以下准备工作:
1. 更新系统并关闭 SELinux 和防火墙服务。
```bash
sudo yum update -y && sudo yum install -y net-tools wget vim git
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
systemctl stop firewalld && systemctl disable firewalld
```
2. 安装必要工具(Docker、kubeadm、kubectl、kubelet),并通过 `modprobe` 加载必要的内核模块。
```bash
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
sudo yum install docker kubelet kubeadm kubectl --disableexcludes=kubernetes -y
sudo modprobe br_netfilter
echo "br_netfilter" >> /etc/modules-load.d/k8s.conf
sysctl -w net.bridge.bridge-nf-call-ip6tables=1
sysctl -w net.bridge.bridge-nf-call-iptables=1
```
3. 启动并启用 Docker 和 kubelet 服务。
```bash
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
```
4. 禁用交换分区。
```bash
swapoff -a
sed -i '/swap/d' /etc/fstab
```
---
#### 创建主节点
通过执行以下命令,在主节点上初始化 Kubernetes 集群[^4]:
```bash
sudo kubeadm init --config=/root/kubeadm-config.yaml
```
其中 `/root/kubeadm-config.yaml` 是自定义的配置文件。如果未提供此参数,则会使用默认配置。
完成后,按照提示将管理员配置文件复制到用户的 `.kube/` 目录下以便管理集群[^1]:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
---
#### 添加工作节点
在每个工作节点上运行以下命令加入集群:
```bash
kubeadm join <控制平面主机>:<端口> --token <令牌> --discovery-token-ca-cert-hash sha256:<哈希>
```
该命令可以通过主节点上的日志获得,或者重新生成新的 Token 使用如下方法获取[^2]:
```bash
kubectl create token node-bootstrapper
```
---
#### 部署 Pod 网络插件
为了让 Pods 彼此通信,必须先部署一个 CNI 插件。例如 Flannel 或 Calico。这里以 Flannel 为例:
```bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
验证网络是否正常启动:
```bash
kubectl get pods --all-namespaces
```
---
#### (可选)部署 Kubernetes Dashboard
若希望可视化管理集群,可以部署官方提供的 Kubernetes Dashboard:
1. 应用 Dashboard 的 YAML 文件:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml
```
2. 获取访问所需的 Token:
```bash
kubectl describe secrets -n kubernetes-dashboard $(kubectl -n kubernetes-dashboard get secret | awk '/dashboard-admin/{print $1}')
```
3. 设置代理以本地访问 Dashboard:
```bash
kubectl proxy
```
打开浏览器输入 URL 即可访问:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
---
### 总结
以上流程涵盖了从环境准备到集群创建以及后续扩展的主要步骤。每一步都依赖于之前的成功操作,因此建议严格按照顺序执行。
阅读全文
相关推荐

















