如何在Ubuntu Server安装没有Docker的Kubernetes?

译文
开发 前端 云计算
Docker在Kubernetes中已被弃用,您需要知道怎样才能部署这个容器编排工具。本文作者介绍了一条可行的道路。

【51CTO.com快译】Kubernetes现弃用对Docker的支持。没错,您在学习这个容器编排工具上所做的所有艰苦工作都将发生变化。您使用Kubernetes的方式会不一样。

我说的是这个容器管理工具的安装。您当然不能像以前那样部署Kubernetes:将Docker安装为运行时环境。有鉴于此,您该怎么办?我来演示一番。

总之,我们将在Ubuntu Server 20.04上安装Kubernetes,没有Docker。

您需要什么?

  • 具有sudo权限的用户
  • Ubuntu Server 20.04的一个实例(将充当控制器――您需要其他实例充当节点,但是我将仅在控制器上进行演示,因为所有计算机上的安装都一样)。

如何安装containerd运行时环境?

我们要做的第一件事是安装containerd运行时环境,它将代替Docker。登录到您的Ubuntu Server实例,并确保使用以下命令更新apt:

  1. sudo apt-get update 

这步完成后,您应该使用以下命令运行升级:

  1. sudo apt-get upgrade -y 

如果内核升级了,需要重新启动服务器(除非您已安装并运行Live Patch)。

使用以下命令安装containerd:

  1. sudo apt-get install containerd -y 

使用以下命令配置containerd并启动服务:

  1. sudo mkdir -p /etc/containerd 
  2. sudo su - 
  3. containerd config default /etc/containerd/config.toml 

如何安装Kubernetes?

接下来我们将安装Kubernetes。首先您需要使用以下命令添加存储库的GPG密钥:

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

使用以下命令添加Kubernetes存储库:

  1. sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" 

现在您可以使用以下命令安装所有必需的Kubernetes组件:

  1. sudo apt-get install kubeadm kubelet kubectl -y 

如何解决containerd带来的几个问题?

这方面情况有些棘手。虽然Kubernetes开发人员会告诉您应该很顺利,事实并非如此,至少现在还没有。有了Docker,许多底层工作无需操心。您迁移到containerd后,必须进行一番手动配置更改。

第一处更改是为/etc/sysctl.conf添加一行。使用以下命令打开文件:

  1. sudo nano /etc/sysctl.conf 

该文件打开后,在底部添加以下内容:

  1. net.bridge.bridge-nf-call-iptables = 1 

保存并关闭文件。

下一步,运行以下命令:

  1. sudo -s 
  2. sudo echo '1' > /proc/sys/net/ipv4/ip_forward 
  3. exit 

用以下命令重新装入配置:

  1. sudo sysctl --system 

您还需要用以下命令装入几个必要的模块:

  1. sudo modprobe overlay 
  2. sudo modprobe br_netfilter 

一旦您完成了上述,应该可以最终初始化Kubernetes了。

如何完成安装?

您需要映射/etc/hosts中的所有节点。确保映射采用这种形式:

IP Address hostname

下一步是用以下命令设置控制器的主机名(确保它与您在/etc/hosts中使用的主机名相匹配):

  1. sudo hostnamectl set-hostname HOSTNAME 

其中HOSTNAME是您想使用的主机名。

使用以下命令打开fstab文件来编辑,禁用置换:

  1. sudo nano /etc/fstab 

在该文件中,注释掉以/swap.img开头的条目(即在某一行的开头添加#字符),这一行现在将以#/swap.img开头。

保存并关闭文件。

用以下命令禁用置换:

  1. sudo swapoff -a 

用以下命令拉取必要的容器:

  1. sudo kubeadm config images pull 

在控制器上,用以下命令初始化Kubernetes:

  1. sudo kubeadm init --pod-network-cidr=IPADDRESS/24 

其中IPADDRESS是控制器的IP地址。

您最终将回到在节点上运行的该命令,以便它们可以连接到集群。拷贝该命令。

在可以将节点添加到集群之前,您要处理好集群上的另外几点。

在集群上,用以下命令创建集群目录:

  1. mkdir -p $HOME/.kube 

用以下命令将配置文件拷贝到该目录中:

  1. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 

用以下命令为配置文件赋予适当的权限:

  1. sudo chown $(id -u):$(id -g) $HOME/.kube/config 

用以下命令将pod网络(这里我们将使用weave-net)部署到集群上:

  1. kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" 

现在您可以在每一个节点上运行join命令,以完成集群。

这个过程不如过去那么简单。但愿在将来,Kubernetes集群部署会与过去牵涉Docker时一样容易。在此之前,如果您选择将这种容器编排工具托管在自己的硬件上,就要完成上述步骤。

原文标题:How to install Kubernetes on Ubuntu Server without Docker,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2024-01-04 11:50:00

UbuntuDocker

2022-03-17 14:56:26

KubernetesMinikubeLinux

2022-07-28 15:10:34

UbuntuDocker

2012-05-29 14:42:47

Ubuntu 12.0

2023-07-24 11:01:29

UbuntuWine

2022-11-02 16:47:36

2019-08-02 15:30:42

UbuntuMongoDB命令

2019-08-30 11:20:28

UbuntuVirtualBoxLinux

2023-08-08 12:38:52

2018-10-15 15:23:50

UbuntupipPython

2022-11-22 08:24:28

UbuntuLinux命令

2023-11-04 21:40:58

UbuntuLibreOffic

2015-12-07 15:11:18

Ubuntupuppet安装

2014-02-28 09:43:28

Ubuntu LibreOffic

2015-10-16 10:07:22

Justniffer安装Ubuntu

2014-04-03 11:25:15

Ubuntu ServRainLoop We

2021-09-11 15:41:55

UbuntuDropbox云服务

2017-03-29 16:18:11

LinuxUbuntuRedmine

2013-07-25 10:00:30

UbuntuVirtualBox

2021-07-12 14:47:16

UbuntuZlib代码
点赞
收藏

51CTO技术栈公众号