Kubernetes的安装可通过脚本自动化或工具简化,以下是两种主流的快速安装方案,覆盖单节点/多节点场景。
MicroK8s是Canonical推出的轻量级Kubernetes发行版,一键安装、无需复杂配置,适合本地开发或测试。
sudo snap install microk8s --classic
--classic参数允许MicroK8s以root权限运行,简化权限配置。microk8s enable dashboard dns registry
microk8s status
microk8s kubectl create deployment nginx --image=nginx
microk8s kubectl expose deployment nginx --port=80 --type=ClusterIP
microk8s kubectl get service nginx # 查看服务端口
访问http://<节点IP>:<NodePort>(通过kubectl get service获取端口)即可看到Nginx欢迎页面。Kubeadm是Kubernetes官方提供的集群部署工具,支持自定义配置,适合需要灵活调整的场景。
sudo apt update && sudo apt upgrade -y # Ubuntu
sudo yum update -y # CentOS
sudo apt install -y docker.io # Ubuntu
sudo yum install -y docker # CentOS
sudo systemctl start docker && sudo systemctl enable docker
sudo swapoff -a
sudo sed -i '/ swap / s/1/g' /etc/fstab # 永久禁用
sudo apt install -y apt-transport-https curl # Ubuntu
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 # 锁定版本,防止自动更新
--pod-network-cidr指定Pod网络CIDR,需与后续网络插件匹配):sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,会输出kubeadm join命令(包含Token和CA证书哈希),务必保存,用于后续加入Worker节点。mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubeadm join命令,例如:sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
加入后,Master节点的kubectl get nodes会显示Worker节点状态为“Ready”。若不想手动执行每一步,可使用社区提供的一键安装脚本,自动完成环境配置、组件安装和集群初始化。
Ubuntu/Debian(脚本示例):
将以下脚本保存为install_k8s.sh,赋予执行权限后运行:
#!/bin/bash
sudo apt update
sudo apt install -y docker.io 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 install -y kubelet kubeadm kubectl
sudo systemctl enable docker kubelet
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
运行脚本:bash install_k8s.sh。
CentOS(Sealos工具):
Sealos是一键部署Kubernetes的工具,支持CentOS 7/8,操作步骤:
wget https://github.com/labring/sealos/releases/download/v3.5.4/sealos_linux-amd64chmod +x sealos_linux-amd64./sealos_linux-amd64 init --master 192.168.1.100 --pkg-url registry.cn-hangzhou.aliyuncs.com/labring/kubernetes:v1.28.2注意:一键脚本虽便捷,但需提前了解其原理,避免生产环境使用未知来源的脚本。
以上方法覆盖了不同场景的快速安装需求,选择时需根据系统环境、操作经验及后续扩展需求决定。安装完成后,可通过kubectl get nodes验证集群状态,kubectl run nginx --image=nginx部署测试应用。