linux

Linux K8s部署步骤全解析

小樊
85
2025-10-05 21:20:54
栏目: 智能运维

Linux环境下Kubernetes(K8s)集群部署全解析

一、准备工作

1. 环境与系统要求

2. 系统优化配置

3. 安装Docker容器运行时

Kubernetes依赖容器运行时管理容器,推荐使用Docker(也可选择containerd,但Docker更常用)。

4. 安装Kubernetes核心组件

Kubernetes的核心组件包括kubeadm(集群初始化工具)、kubelet(节点代理)、kubectl(命令行工具)。

二、部署Master节点

Master节点是集群的控制中心,负责管理节点、调度Pod、维护集群状态。

1. 初始化Master节点

在Master节点上执行kubeadm init命令,指定Pod网络CIDR(需与后续网络插件兼容,如Flannel默认使用10.244.0.0/16):

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<Master-IP>

2. 配置kubectl

kubectl是管理Kubernetes集群的命令行工具,需将Master节点的配置文件复制到当前用户目录:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. 安装网络插件

Kubernetes需要网络插件实现Pod之间的跨节点通信,推荐使用Flannel(轻量级、易部署)或Calico(功能丰富、支持网络策略)。

三、部署Worker节点

Worker节点是集群的计算节点,负责运行容器化应用。

1. 加入Worker节点

在Worker节点上执行Master节点初始化时输出的kubeadm join命令(替换为实际Token和CA哈希):

kubeadm join <Master-IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

2. 验证节点加入

回到Master节点,执行以下命令查看集群节点状态:

kubectl get nodes

四、验证集群部署

1. 检查节点状态

kubectl get nodes

2. 部署示例应用

部署一个Nginx应用,验证集群是否能正常调度Pod:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --type=NodePort --port=80

3. 访问示例应用

获取NodePort端口(替换为实际节点IP):

kubectl get svc nginx

五、可选步骤(增强集群功能)

1. 安装Kubernetes Dashboard

Dashboard是Kubernetes的Web管理界面,可通过以下命令安装:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

2. 配置高可用(HA)

生产环境建议部署高可用集群,包含多个Master节点(通过etcd集群保证数据一致性),可使用kubeadm的--control-plane-endpoint参数配置。

3. 配置持久化存储

若应用需要持久化数据,可安装存储插件(如NFS、Ceph、Longhorn),并创建PersistentVolume(PV)和PersistentVolumeClaim(PVC)。

以上步骤覆盖了Linux环境下Kubernetes集群的基础部署流程,实际生产环境需根据需求调整配置(如网络插件选择、高可用设计、存储方案等)。部署完成后,建议定期备份etcd数据(集群核心数据),并监控集群状态(如使用Prometheus+Granafa)。

0
看了该问题的人还看了