Kubernetes的正确起步是一个挑战。当你想快速完成的时候,你可以创建一个测试或开发环境,或者只是熟悉它的工作原理。你可能没有时间在每次需要时启动多节点集群。在这种情况下,你可以求助于KubeKey,它使得出于开发/测试目的启动Kubernetes部署变得非常容易。

但是,不要认为以这种方式使用KubeKey是大规模部署应用程序和服务的一种手段。笔者将展示的主要是用于测试和开发目的,不要将其视为面向生产的应用程序或服务的解决方案。

为了实现这一点,你需要一个运行中的Ubuntu Server 20.04(或更新版本)实例和一个具有sudo权限的用户。你可能还想让Ubuntu服务器实例有一个完整的桌面环境(这样你就可以部署Kubernetes仪表板了——笔者也会告诉你怎么做)。

安装Docker

需要做的第一件事是安装Docker。我们不再安装标准存储库中的Docker版本,而是更进一步,安装Docker的社区版。

首先,安装必要的依赖关系。登录服务器并发出以下命令:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y

接下来,使用以下命令添加Docker GPG官方密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

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

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"

更新apt并使用以下内容安装Docker:

​sudo apt-get update​

​sudo apt-get install docker-ce -y​

通过以下方式启动并启用Docker服务:

sudo systemctl enable --now docker

使用以下命令将用户添加到docker组:

sudo usermod -aG docker $USER

确保更改生效:

newgrp docker

安装KubeKey

在下载KubeKey之前,还有另一个依赖关系需要处理,可以通过以下命令完成:

sudo apt-get install conntrack -y

下载KubeKey二进制文件:

curl -sfL https://get-kk.kubesphere.io | VERSION=v1.2.1 sh -

下载文件后,使用以下命令使其可执行:

chmod u+x kk

让我们通过将文件复制到/user/local/bin目录,使kk可执行,从而可以从任何目录运行。通过以下方式实现:

sudo cp kk /usr/local/bin

通过以下方式验证安装:

kk -h

如果看到打印出来的帮助信息,那么kk可执行文件就可以运行了。

部署集群

现在,我们可以通过以下方式部署集群:

sudo kk create cluster

不幸的是,你必须使用sudo权限来运行这个。这就是为什么笔者认为KubeKey的最佳用例仅用于开发/测试/教育目的的原因之一。

这个过程需要一些时间,因为它必须下载大量二进制文件和其他位才能工作。完成后,你将返回终端窗口,并准备继续。

现在,你应该能够通过以下命令验证kubectl是否已安装:

kubectl --help

这一次,你应该看到kubectl命令的帮助信息。

部署Kubernetes仪表板

让我们更进一步。这不是必需的,但它将有助于让事情变得更容易。使用以下命令部署Kubernetes仪表板:

sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

部署仪表板后,你需要定位集群的IP地址,这可以通过以下命令完成:

sudo kubectl get svc -n kubernetes-dashboard

你应该会看到kubernetes仪表板与CLUSTER-IP地址和端口号一起以以下形式列出:

kubernetes-dashboard        NodePort    10.233.33.37    <none>        443:31693/TCP   57m

你可能希望通过NodePort而不是ClusterIP公开仪表板。这样做,发出命令:

sudo kubectl edit svc kubernetes-dashboard -o yaml -n kubernetes-dashboard

这将在vi编辑器中打开配置文件。你必须先输入i才能进入互动模式。然后向下滚动,直到看到:

type: ClusterIP

将它改为:

type: NodePort

点击escape退出交互模式,然后输入:wq保存并关闭文件。接下来,必须按如下方式运行kubectl proxy命令:

sudo kubectl proxy

在代理运行时,打开一个web浏览器,将其指向sudo kubectl get svc-n kubernetes dashboard命令结果中列出的IP地址和端口号。你将看到登录屏幕,需要一个访问令牌。要检索该令牌,请发出以下命令:

sudo kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

这将打印出一长串随机字符。将该字符串复制并粘贴到token字段中,然后你就可以访问Kubernetes仪表板。

这就是如何快速启动Kubernetes开发环境,而不必经历部署整个集群的所有麻烦。这还没有生产就绪,但这是一个很好的方式来跟上Kubernetes的速度,甚至为平台开发。