Linux环境下Kubernetes部署步骤
1. 准备工作
- 环境要求:每台服务器需满足以下条件:至少2核CPU、2GB内存、20GB磁盘空间;安装Linux发行版(如Ubuntu 16.04+/CentOS 7.x+);具备root或sudo权限;所有节点能通过网络互相通信。
- 基础配置:
- 关闭swap分区(Kubernetes要求):执行
swapoff -a临时关闭,编辑/etc/fstab文件删除或注释swap行永久关闭。 - 关闭防火墙和SELinux(避免网络拦截):
systemctl stop firewalld && systemctl disable firewalld(CentOS);sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && setenforce 0(CentOS)。 - 配置hosts文件:在每台节点的
/etc/hosts中添加集群节点IP与主机名映射(如192.168.1.10 master、192.168.1.11 node1),确保主机名解析一致。
- 关闭swap分区(Kubernetes要求):执行
2. 安装Docker容器运行时
Kubernetes依赖容器运行时管理容器,常用Docker作为运行时(也可选择containerd):
- Ubuntu/Debian:
sudo apt update && sudo apt install -y docker.io sudo systemctl start docker && sudo systemctl enable docker - CentOS/RHEL:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker && sudo systemctl enable docker - 验证安装:
docker version(显示客户端与服务端版本信息即为成功)。
3. 安装Kubernetes核心组件
安装kubeadm(集群初始化工具)、kubelet(节点代理)、kubectl(命令行工具):
- Ubuntu/Debian:
sudo apt update && sudo apt install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt update sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本避免自动升级 - CentOS/RHEL:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF sudo yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0 # 指定版本(如1.28.0) sudo systemctl enable kubelet && sudo systemctl start kubelet - 验证安装:
kubeadm version、kubectl version --client(显示版本信息即为成功)。
4. 初始化Master节点
Master节点负责集群管理(调度、控制平面),执行以下命令初始化:
sudo kubeadm init \
--apiserver-advertise-address=<Master节点IP> \ # 指定Master节点IP
--pod-network-cidr=10.244.0.0/16 \ # 指定Pod网络CIDR(需与后续网络插件匹配)
--image-repository registry.aliyuncs.com/google_containers # 使用国内镜像加速
- 初始化完成后,终端会输出关键信息:
kubeadm join命令(用于将Worker节点加入集群,需保存);- 提示配置kubectl:
mkdir -p $HOME/.kube;sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config;sudo chown $(id -u):$(id -g) $HOME/.kube/config(配置kubectl访问集群权限)。
5. 部署网络插件
Kubernetes需要网络插件实现Pod间通信,常用Calico(高性能、支持网络策略):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- 验证网络插件:
kubectl get pods -n kube-system(所有Pod状态应为Running)。
6. 加入Worker节点
Worker节点负责运行应用容器,将Master节点初始化输出的kubeadm join命令复制到Worker节点执行:
sudo kubeadm join <Master节点IP>:6443 \
--token <生成的Token> \
--discovery-token-ca-cert-hash sha256:<生成的Hash>
- 执行后,Worker节点会自动安装必要组件并加入集群。
7. 验证集群状态
在Master节点上执行以下命令,确认集群状态正常:
kubectl get nodes # 查看节点状态(所有节点应为Ready)
kubectl get pods --all-namespaces # 查看所有命名空间的Pod状态(应为Running)
- 若节点状态为
NotReady,需检查:Docker/Kubelet服务是否运行、网络插件是否部署成功、节点间网络是否通畅。
8. (可选)部署Kubernetes Dashboard
Dashboard是Kubernetes的Web管理界面,方便可视化操作:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
- 创建访问令牌:
kubectl create serviceaccount dashboard-admin-sa kubectl create clusterrolebinding dashboard-admin-sa --clusterrole=cluster-admin --serviceaccount=default:dashboard-admin-sa kubectl get secret $(kubectl get sa dashboard-admin-sa -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token}}" | base64 -d - 访问Dashboard:通过
kubectl proxy启动代理,然后在浏览器输入http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/,输入令牌登录。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1446384.html