linux

怎样在Linux上快速安装Kubernetes

小樊
53
2025-10-03 20:23:13
栏目: 智能运维

在Linux上快速安装Kubernetes的方法(以Ubuntu/CentOS为例)

Kubernetes的安装可通过脚本自动化工具简化,以下是两种主流的快速安装方案,覆盖单节点/多节点场景。

一、使用MicroK8s(Ubuntu,最快方法)

MicroK8s是Canonical推出的轻量级Kubernetes发行版,一键安装、无需复杂配置,适合本地开发或测试。

  1. 安装MicroK8s
    打开终端,执行以下命令安装MicroK8s(需联网):
    sudo snap install microk8s --classic
    
    --classic参数允许MicroK8s以root权限运行,简化权限配置。
  2. 启用核心组件
    安装完成后,启用Dashboard(可视化)、DNS(服务发现)、Registry(私有镜像仓库)等常用组件:
    microk8s enable dashboard dns registry
    
  3. 验证安装状态
    执行以下命令检查集群状态,若显示“running”则表示安装成功:
    microk8s status
    
  4. 部署示例应用
    快速测试集群功能,部署一个Nginx应用:
    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(Ubuntu/CentOS,通用方法)

Kubeadm是Kubernetes官方提供的集群部署工具,支持自定义配置,适合需要灵活调整的场景。

  1. 前置准备
    • 更新系统
      sudo apt update && sudo apt upgrade -y  # Ubuntu
      sudo yum update -y                      # CentOS
      
    • 安装Docker
      Docker是Kubernetes默认的容器运行时,安装最新稳定版:
      sudo apt install -y docker.io           # Ubuntu
      sudo yum install -y docker              # CentOS
      sudo systemctl start docker && sudo systemctl enable docker
      
    • 禁用Swap
      Kubernetes要求关闭Swap分区,避免节点资源调度异常:
      sudo swapoff -a
      sudo sed -i '/ swap / s/1/g' /etc/fstab  # 永久禁用
      
  2. 安装Kubeadm、Kubelet、Kubectl
    这三个组件是Kubernetes核心,通过官方源安装:
    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  # 锁定版本,防止自动更新
    
  3. 初始化Master节点
    在Master节点执行以下命令,初始化Kubernetes集群(--pod-network-cidr指定Pod网络CIDR,需与后续网络插件匹配):
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    
    初始化完成后,会输出kubeadm join命令(包含Token和CA证书哈希),务必保存,用于后续加入Worker节点。
  4. 配置kubectl
    将集群配置文件复制到当前用户目录,使kubectl能访问集群:
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  5. 安装网络插件
    Kubernetes需要网络插件实现Pod间通信,常用Flannel(轻量级):
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  6. 加入Worker节点
    在Worker节点执行Master节点输出的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”。

三、可选:一键安装脚本(简化操作)

若不想手动执行每一步,可使用社区提供的一键安装脚本,自动完成环境配置、组件安装和集群初始化。

以上方法覆盖了不同场景的快速安装需求,选择时需根据系统环境、操作经验及后续扩展需求决定。安装完成后,可通过kubectl get nodes验证集群状态,kubectl run nginx --image=nginx部署测试应用。

0
看了该问题的人还看了