Linux系统安装Kubernetes详细步骤
环境要求
systemctl stop firewalld)或放行6443(API Server)等端口;setenforce 0)或调整策略。安装Docker容器运行时
Kubernetes依赖容器运行时,推荐使用Docker(也可替换为containerd):
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
sudo systemctl enable --now docker
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
sudo systemctl enable --now docker
docker run hello-world,若输出“Hello from Docker!”则安装成功。安装Kubernetes核心组件
Kubernetes核心组件包括kubelet(节点代理)、kubeadm(集群初始化工具)、kubectl(命令行工具):
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet
sudo yum install -y epel-release
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用
kubeadm version、kubelet version,确认版本输出正常。Master节点负责集群管理(调度、API服务),初始化命令如下:
sudo kubeadm init \
--pod-network-cidr=10.244.0.0/16 \ # 指定Pod网络CIDR(需与后续网络插件匹配)
--apiserver-advertise-address=<Master-IP> \ # 替换为Master节点实际IP
--image-repository registry.aliyuncs.com/google_containers # 国内镜像加速(可选,避免拉取镜像超时)
kubectl是管理Kubernetes集群的命令行工具,需配置访问权限:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl version,若显示客户端与服务端版本信息则配置成功。Kubernetes需要网络插件实现Pod间通信,常用Flannel(轻量级、易部署):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get pods -n kube-system,若所有Pod状态为Running则说明安装成功。若有多个节点,需将Worker节点加入集群:
kubeadm init后,会得到类似以下的命令:kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
kubectl get nodes查看节点状态)。registry.aliyuncs.com/google_containers)替代默认仓库;kubeadm init会报错,需执行swapoff -a并修改/etc/fstab永久禁用;--pod-network-cidr与网络插件要求的CIDR一致(如Flannel要求10.244.0.0/16)。