Linux环境下Kubernetes部署步骤是什么
导读:Linux环境下Kubernetes部署步骤 1. 准备工作 环境要求:每台服务器需满足以下条件:至少2核CPU、2GB内存、20GB磁盘空间;安装Linux发行版(如Ubuntu 16.04+/CentOS 7.x+);具备root或s...
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/,输入令牌登录。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux环境下Kubernetes部署步骤是什么
本文地址: https://pptw.com/jishu/742397.html
