如何在Ubuntu上安装kubeadm,并通过它搭建Kubernetes(k8s)集群?

问题浏览数Icon
35
问题创建时间Icon
2025-02-08 00:47:00
回答 | 共 5 个
作者头像
quickglow99

在Ubuntu上安装kubeadm并搭建Kubernetes集群的过程相对直接。以下是详细的步骤,确保清晰易懂。

步骤 1: 更新系统

首先,确保您的系统是最新的。运行以下命令:

sudo apt-get update
sudo apt-get upgrade

步骤 2: 安装依赖

安装一些必要的工具和依赖包:

sudo apt-get install -y apt-transport-https ca-certificates curl

步骤 3: 添加Kubernetes的GPG密钥

使用以下命令导入Kubernetes的GPG密钥:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

步骤 4: 添加Kubernetes的Apt存储库

接下来,将Kubernetes的apt存储库添加到系统中:

echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

步骤 5: 安装kubeadm, kubelet和kubectl

更新apt包并安装kubeadm、kubelet和kubectl:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

步骤 6: 关闭交换分区

Kubernetes要求在安装之前关闭交换分区,可以使用以下命令:

sudo swapoff -a

为了使命令在重启后仍然生效,您需要注释掉/etc/fstab文件中的交换行:

sudo nano /etc/fstab

然后找到以 swap 开头的行,前面加上 # 来注释掉。

步骤 7: 初始化Kubernetes集群

在控制节点上运行以下命令来初始化集群(您可以指定网络插件,通常使用flannel):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

在输出的最后,会有一些命令提示,这些命令用于配置kubectl和加入工作节点。

步骤 8: 配置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

步骤 9: 安装网络插件

使用flannel作为网络插件,可以运行以下命令:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel.yml

步骤 10: 在工作节点上加入集群

在工作节点上,使用从初始化输出中获得的命令加入集群,格式如下:

kubeadm join [your-master-ip]:6443 --token [your-token] --discovery-token-ca-cert-hash sha256:[your-hash]

步骤 11: 验证集群状态

在控制节点上,使用命令验证集群状态:

kubectl get nodes

小结

至此,您已经在Ubuntu上成功安装了kubeadm,并通过它搭建了一个Kubernetes集群。操作系统的更新、依赖的安装与配置、以及网络插件的安装等,都保证了集群的正常运行。确保在实际操作中,检查每一步的输出,以便及时发现并解决可能出现的问题。

作者头像
ricklong77
  1. 更新系统

    • 使用以下命令更新Ubuntu的软件包索引:
      sudo apt-get update  
      sudo apt-get upgrade  
  2. 安装依赖

    • 安装Docker等必需组件:
      sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common  
  3. 安装Docker

    • 添加Docker的GPG密钥和存储库:
      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"  
    • 安装Docker:
      sudo apt-get update  
      sudo apt-get install -y docker-ce  
    • 启动并验证Docker:
      sudo systemctl start docker  
      sudo systemctl enable docker  
      sudo docker run hello-world  
  4. 关闭Swap

    • 关闭交换分区,以提高Kubernetes的性能:
      sudo swapoff -a  
    • 永久禁用Swap:
      • 编辑/etc/fstab文件,注释掉与swap相关的行。
  5. 添加Kubernetes的GPG密钥和存储库

    • 添加GPG密钥:
      curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -  
    • 添加Kubernetes存储库:
      sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"  
  6. 安装Kubeadm、Kubelet和Kubectl

    • 更新并安装相关组件:
      sudo apt-get update  
      sudo apt-get install -y kubelet kubeadm kubectl  
      sudo apt-mark hold kubelet kubeadm kubectl  
  7. 初始化Kubernetes集群

    • 在主节点上运行以下命令来初始化Kubernetes集群(指定网络CIDR根据网络插件调整):
      sudo kubeadm init --pod-network-cidr=10.244.0.0/16  
    • 运行以下命令以设置kubectl:
      mkdir -p $HOME/.kube  
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  
      sudo chown $(id -u):$(id -g) $HOME/.kube/config  
  8. 安装Pod网络插件

    • 根据选择的网络插件,执行相应的安装命令,例如:Flannel:
      kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel.yml  
  9. 加入工作节点

    • 在主节点初始化完成后,获取加入集群所需的命令,格式如下:
      kubeadm join [your-master-node-ip]:6443 --token [your-token] --discovery-token-ca-cert-hash sha256:[your-hash]  
    • 在每个工作节点上运行上述命令完成节点加入。
  10. 验证集群状态

    • 检查节点状态:
      kubectl get nodes  

至此,一个基本的Kubernetes集群已在Ubuntu上搭建完成。可以进行后续的应用部署和管理。

作者头像
ptleaf99

为什么不考虑使用其他容器编排工具,比如Docker Swarm或Apache Mesos,它们可能在某些场景下更符合你的需求?

作者头像
xiaoxiong9

在Ubuntu上安装kubeadm并搭建Kubernetes集群的过程相对简单,但需要确保系统和网络设置正确。以下是我的建议:

  1. 系统准备:确保你的Ubuntu系统是最新的,建议使用LTS版本。

    • 更新系统:
      sudo apt update && sudo apt upgrade -y
    • 安装必要的依赖:
      sudo apt install -y apt-transport-https ca-certificates curl 
  2. 安装Docker:Kubernetes依赖容器运行时,Docker是最常用的选择。

    • 安装Docker:
      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
    • 启动并设置Docker开机自启:
      sudo systemctl enable docker
      sudo systemctl start docker
  3. 安装kubeadm、kubelet和kubectl

    • 添加Kubernetes的apt源:
      curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
      sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
      sudo apt update
    • 安装kubeadm、kubelet和kubectl:
      sudo apt install -y kubelet kubeadm kubectl
      sudo apt-mark hold kubelet kubeadm kubectl
  4. 初始化Kubernetes集群

    • 使用kubeadm进行初始化(主节点):
      sudo kubeadm init --pod-network-cidr=192.168.0.0/16
    • 执行完后,会输出一些命令来设置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. 安装Pod网络插件

    • 选择一个Pod网络插件(如Flannel、Calico等),以下是安装Flannel的命令:
      kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifest.yml
  6. 添加工作节点

    • 在主节点初始化后能看到加入集群的命令,使用这个命令在工作节点上加入集群。
  7. 验证集群

    • 检查节点状态:
      kubectl get nodes
  8. 安全性与监控

    • 考虑添加适当的安全机制和监控工具,以确保集群的稳定和安全。

总的来说,搭建Kubernetes集群需要一些准备和后续的监控管理,但遵循上述步骤可以有效地在Ubuntu上完成安装和启动工作。

注意:以上步骤假定你对Linux命令行有基本的了解,并且具备相应的网络环境和权限。

作者头像
shanlong66

在Ubuntu上安装kubeadm并搭建Kubernetes集群的步骤如下:\n\n1. 准备工作:\n - 确保系统为Ubuntu 16.04+,建议使用最新版本。\n - 更新包索引并安装必要软件。\n \n bash\n sudo apt-get update\n sudo apt-get install -y apt-transport-https ca-certificates curl\n sudo apt-get install -y software-properties-common\n\n\n2. 添加Kubernetes的官方GPG密钥:\n bash\n curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -\n\n\n3. 添加Kubernetes的APT源:\n bash\n sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"\n\n\n4. 安装kubeadm、kubelet和kubectl:\n bash\n sudo apt-get update\n sudo apt-get install -y kubelet kubeadm kubectl\n sudo apt-mark hold kubelet kubeadm kubectl\n\n\n5. 设置节点环境:\n - 关闭Swap,Kubernetes要求没有swap。\n bash\n sudo swapoff -a\n\n - 在 /etc/fstab 中注释掉swap相关行,以防重启后开启。\n \n6. 初始化Kubernetes控制平面:\n - 在Master节点上执行以下命令:\n bash\n sudo kubeadm init --pod-network-cidr=10.244.0.0/16\n\n - 记下输出中的Kubernetes加入命令,将用于Worker节点加入集群。\n \n7. 配置kubectl:\n bash\n mkdir -p $HOME/.kube\n sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config\n sudo chown $(id -u):$(id -g) $HOME/.kube/config\n\n\n8. 安装Pod网络插件:\n - 例如使用Flannel:\n bash\n kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel.yml\n\n\n9. 加入Worker节点:\n - 在所有Worker节点上执行前面步骤中获取的加入命令,例如:\n bash\n sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>\n\n\n10. 检查集群状态:\n - 在Master节点上运行:\n bash\n kubectl get nodes\n\n 以上步骤完成后,你应该能看到集群中的Master和Worker节点,这是一个简单的Kubernetes集群搭建过程。请根据自己的需要进行相关配置和扩展。