centos7系统搭建kubernetes集群
时间: 2025-05-30 09:18:16 浏览: 23
### 在 CentOS 7 上部署和配置 Kubernetes 集群
要在 CentOS 7 系统上成功搭建 Kubernetes 集群,需要完成以下几个方面的准备工作以及具体的操作流程。
#### 准备工作
1. **操作系统环境准备**
- 确保所有节点运行的是 CentOS 7 或更高版本。
- 关闭 `swap` 并禁用它以防止 Kubernetes 节点出现问题[^2]。
```bash
swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
```
2. **网络时间同步 (NTP)**
- 所有节点的时间应保持一致。可以通过 NTP 同步来实现这一点。
```bash
timedatectl set-ntp true
```
3. **防火墙设置**
- 如果启用了防火墙,则需允许必要的端口通信。
```bash
firewall-cmd --permanent --add-port={6443,2379-2380,10250,10251,10252}/tcp
firewall-cmd --reload
```
---
#### 安装 Docker 和 Kubernetes 组件
1. **Docker 的安装**
- 添加阿里云的 Docker YUM 源并安装最新版 Docker CE。
```bash
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker && systemctl enable docker
```
2. **Kubernetes 的安装**
- 创建 Kubernetes 的 YUM 源文件 `/etc/yum.repos.d/kubernetes.repo`:
```bash
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF
```
- 安装所需的组件(如 `kubelet`, `kubeadm`, `kubectl`),并启用服务:
```bash
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
```
---
#### 初始化 Master 节点
1. **初始化集群**
- 使用 `kubeadm init` 命令初始化主节点,并指定 Pod 网络 CIDR 地址范围为 Flannel 插件兼容的网段[^3]。
```bash
kubeadm init --pod-network-cidr=10.244.0.0/16
```
- 记录生成的加入命令以便后续添加 Worker 节点。
2. **配置 Kubectl**
- 将管理员权限复制到当前用户的 `.kube/config` 文件中。
```bash
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
```
3. **应用 CNI 网络插件**
- 下载并应用 Flannel 网络插件 YAML 文件[^4]。
```bash
curl -sSL https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml | kubectl apply -f -
```
---
#### 加入 Worker 节点
1. **在每个 Worker 节点上执行加入命令**
- 运行之前记录下来的 `kubeadm join` 命令将各节点加入集群。
```bash
kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
```
2. **验证节点状态**
- 返回到 Master 节点,确认所有节点均已就绪。
```bash
kubectl get nodes
```
---
#### 测试和服务验证
1. **创建一个简单的 Nginx Deployment 来测试集群功能**
- 应用以下 YAML 文件定义的服务和负载均衡器[^1]。
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30001
selector:
app: nginx
```
- 应用该配置文件并通过以下命令查看其状态:
```bash
kubectl apply -f deployment.yaml
kubectl get pods,services
```
2. **访问服务**
- 可通过任意节点 IP 和分配的 `NodePort` (默认为 30001)访问 Nginx 页面。
---
#### 注意事项
- 若遇到镜像拉取失败的情况,可以手动下载所需镜像并重新标记它们[^5]。
```bash
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.26.9
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.26.9 k8s.gcr.io/kube-proxy:v1.26.9
```
---
阅读全文
相关推荐




















