Centos 7 布置K8S all in one
时间: 2025-03-07 11:11:01 浏览: 34
### 部署 Kubernetes All-in-One 单节点集群
#### 准备工作
为了在 CentOS 7 上成功部署 Kubernetes All-in-One 单节点集群,需先确保操作系统环境已准备好。建议更新系统并配置必要的内核参数。
```bash
sudo yum update -y && sudo reboot
```
#### 安装 Docker 和 Kubernetes 组件
按照官方指导,在所有节点上安装所需的软件包:
```bash
sudo yum install -y docker \
kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2 \
kubernetes-cni
```
启动并启用这些服务以确保它们能在开机时自动运行[^2]。
```bash
sudo systemctl enable --now docker kubelet
```
#### 初始化 Kubernetes 主节点
执行初始化命令来设置主控节点。这一步会下载所需镜像并将当前机器转换为主节点。
```bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
```
此操作完成后,终端将显示加入其他工作节点到集群所需要的指令。对于单节点集群而言,只需继续完成后续步骤即可。
#### 设置kubectl认证
为了让 `kubectl` 能够与 API Server 进行通信,需要复制管理员配置文件至普通用户的家目录下:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
#### 安装 Pod 网络插件
Kubernetes 需要一个 CNI (Container Network Interface) 插件才能让 Pods 彼此之间相互通信。Flannel 是一种简单易用的选择之一。
```bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
此时应该已经拥有了一个功能完整的单节点 Kubernetes 集群。可以通过下面这条命令验证集群状态:
```bash
kubectl get nodes
```
如果一切正常的话,则可以看到唯一的 master 节点处于 Ready 状态。
#### 测试集群健康状况
最后可以创建一个小的应用程序实例来测试整个流程是否正确无误地完成了。
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
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
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
```
保存上述 YAML 文件为 `nginx.yaml` 并应用它:
```bash
kubectl apply -f nginx.yaml
```
通过访问 `<NodeIP>:<NodePort>` 来确认 Nginx 是否能够被外部访问。
阅读全文
相关推荐









