如何在 Ubuntu 22.04 上安装 KubeSphere?

您所在的位置:网站首页 kubesphere源码解读 如何在 Ubuntu 22.04 上安装 KubeSphere?

如何在 Ubuntu 22.04 上安装 KubeSphere?

2024-01-27 12:50| 来源: 网络整理| 查看: 265

Kubesphere 免费开源 Kubernetes 平台和 CNCF 验证的云原生应用程序管理,它是一个企业级 Kubernetes 容器平台,功能丰富,专为混合多云部署量身定制,默认情况下,Kubesphere 包括全栈自动化 IT 操作,并通过 DevOps 工作流程进行了简化,它可以部署到现有的 Kubernetes 集群或 Linux 发行版,或者也可以通过 KubeKey 使用 Kubesphere 设置 Kubernetes,KubeKey 是 Linux 的命令行工具,用于自动部署、更新和扩展 Kubernetes 集群。

Kubesphere 提供了一个直观的图形化 Web UI 来管理 Kubernetes 集群,它还带有可插入的 CI/CD 工具,如 jenkins,允许自动设置 CI/CD 管道。它还提供 Source-to-Image (S2I),用于从源代码自动构建可重现的容器镜像,以及 Binary-to-Image (B2I),用于从二进制文件(Jar、War、二进制文件)构建可重现的容器镜像。

这篇文章将指导如何在 Ubuntu 22.04 服务器上部署 Kubernetes 和 Kubesphere。我们将使用多个 Ubuntu 服务器进行此部署,并且将使用 Kubesphere 提供的 KubeKey 应用程序来自动部署 Kubernetes 集群和 Kubesphere。

先决条件

要学习并完成本教程,需要满足以下要求:

三台运行 ubuntu 22.04 的 Linux 服务器,将使用一台服务器作为 Kubernetes 控制平面,另外两台服务器用作工作节点。 具有 sudo/root 管理员权限的非 root 用户。 设置主机和用户

在安装 Kubernetes 和 Kubesphere 之前,必须设置/etc/hosts文件并在所有服务器上使用 sudo password-less 创建一个新用户,所以请务必在所有 Ubuntu 服务器上运行以下命令。

打开文件/etc/hosts

sudo nano /etc/hosts

将服务器 IP 地址和主机名的详细信息添加到文件中。

192.168.5.35 master master 192.168.5.121 node1 node1 192.168.5.122 node2 node2

保存文件,完成后关闭编辑器。

接下来,输入以下命令创建一个名为ubuntu的新用户,并为新用户ubuntu设置密码。出现提示时,输入您的密码并重复。

sudo useradd -m -s /bin/bash ubuntu sudo passwd ubuntu

最后,运行以下命令以允许ubuntu用户在没有密码的情况下执行sudo,这里的ubuntu用户将用于安装包依赖,所以你必须确保用户可以成为root而不需要密码。

cat ~/.ssh/known_hosts

出现提示时,输入 y 确认并按 ENTER 继续。

接下来,通过下面的ssh命令连接到node1服务器,执行该命令后,应该无需密码验证即可登录到node1。

ssh ubuntu@node1

现在输入以下 apt 命令来更新和刷新 Ubuntu 包索引,然后,安装一些基本的包依赖项,出现提示时输入 y,然后按 ENTER 继续。

sudo apt update sudo apt install curl socat conntrack ebtables ipset

最后,通过下面的ssh命令连接到node2服务器。

ssh ubuntu@node2

连接后,输入以下命令更新存储库包索引,然后,通过apt install命令安装一些依赖包。

sudo apt update sudo apt install curl socat conntrack ebtables ipset

出现提示时输入 y,然后按 ENTER 继续。

此时,您已经为 Kubernetes 和 Kubesphre 安装配置了服务器,在下一节中,将下载用于初始化 Kubernetes 集群和安装 Kubesphere 的 KubeKey 二进制文件。

在主节点上下载 KubeKey

在本节中,将把 KubeKey 二进制文件下载到“主”服务器。KubeKey 是一个单一的二进制文件,允许您部署 Kubernetes 集群,和/或使用 KubeSphere 管理仪表板。它还支持云原生附加组件、多节点和 HA(高可用性)。

输入以下命令将 KubeKey 的二进制文件下载到您当前的工作目录。该过程完成后,您应该会在目录中看到文件“kk”。

curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.2 sh -

现在运行以下命令使文件kk可执行。

chmod +x kk

然后,执行二进制文件kk以验证当前版本和列表在 KubeKey 上的可用参数。

./kk version ./kk help

下面是一个类似的输出,将打印在您的终端屏幕上。

KubeKey 下载完成后,接下来您将通过 KubeKey 开始配置 Kubernetes 和 Kubesphere 部署。

创建 Kubernetes 和 Kubesphere 部署配置

KubeKey 可用于部署 Kubernetes-only 部署或与 KubeSphere 一起部署。它还支持单 Kubernetes 部署和多节点部署。

对于多节点 Kubernetes 和 Kubesphre 部署,您需要生成一个 YAML 脚本来定义服务器的配置。

执行以下kk命令以生成新的 YAML 配置。在此示例中,您将生成一个新的 YAML 脚本deployment-kubesphre.yml并将 Kubernetes 版本指定为 v1.24.2 和 Kubesphere v3.3.1。

./kk create config -f deployment-kubesphre.yml --with-kubernetes v1.24.2 --with-kubesphere v3.3.1

您应该会看到诸如“成功生成 KubeKey 配置文件之类的输出。

现在使用以下 nano 编辑器命令 打开 YAML 文件deployment-kubesphre.yml.

nano deployment-kubesphre.yml

更改参数metadata: testdeployment中的集群名称,并更改详细主机的 IP 地址、用户和用于登录到目标服务器的私钥。最后,在roleGroup上,指定将用作控制平面和工作节点的主机。

apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: testdeployment spec: hosts: - {name: master, address: 192.168.5.35, internalAddress: 192.168.5.35, user: ubuntu, privateKeyPath: "~/.ssh /id_ed25519"} - {name: node1, address: 192.168.5.121, internalAddress: 192.168.5.121, user: ubuntu, privateKeyPath: "~/.ssh/id_ed25519"} - {name: node2, address: 192.168.5.122, internalAddress : 192.168.5.122, user: ubuntu, privateKeyPath: "~/.ssh/id_ed25519"} roleGroups: etcd: - master control-plane: - master worker: - node1 - node2

完成后保存文件并退出编辑器。

对于此示例,您将使用三个不同的 Ubuntu 服务器创建一个名为“testdeployment”的新 Kubernetes 集群。

master作为 etcd 和控制平面。 node1和node2将用作工作节点。

要将所有要求安装到目标服务器,您将使用 SSH 并以用户ubuntu的身份使用私钥~/.ssh/id_ed25519登录。此用户在 visudo 中配置为无密码。

生成和配置 YAML 文件并构建 Kubernetes 和 Kubesphre 部署后,转到以下步骤开始部署。

部署 Kubernetes 和 Kubesphere

在本节中,您将通过 KubeKey 和 YAML 脚本deployment-kubesphre.yml部署具有多节点架构的 Kubernetes 和 Kubesphre 。

执行下面的 Kubekey kk 二进制文件以使用 YAML 文件deployment-kubesphre.yml启动 Kubernetes 和 Kubesphere 部署。

./kk create cluster -f deployment-kubesphre.yml

首先,KubeKey 将检查 Kubernetes 安装的详细要求。成功后,系统将提示您确认安装。输入 yes 并按 ENTER 继续。

完成部署需要大约 5-10 分钟的时间。完成后,您应该会在终端上看到类似于此的输出。此外,您将获得可用于登录 Kubesphere 的默认管理员用户和密码。

现在打开您的网络浏览器并访问“主”服务器 IP 地址和端口“30880”,您应该会看到 Kubepshre 登录页面。

键入用户admin和默认密码P@88w0rd,然后单击“登录”。

登录后,系统会要求您更改 Kubepshre 用户admin的默认密码。输入您的新密码并点击提交。

完成后,您应该会看到 Kubesphere 管理仪表板。在仪表板页面上,您应该可以看到当前版本的 Kubesphere v3.3.1,可用的 Kubernetes 集群为 1。

接下来,单击左上角的平台菜单,然后选择集群管理。

以下是您安装了多个 Ubuntu 服务器、服务器master、node1和node2的 Kubernetes 集群的详细信息。

现在单击“节点”菜单以获取有关 Kubernetes 集群上可用节点的详细信息。下面你可以看到 Kubernetes 集群上有三个不同的节点。主服务器同时用作控制平面和工作节点。

现在单击“系统组件”以获取 Kubernetes 和 Kubesphere 部署中已安装组件的详细信息。您可以看到组件的三个不同类别,即Kubesphere、Kubernetes和Monitoring。

接下来,返回“主”服务器的终端会话并运行下面的kubectl命令以获取 Kubernetes 集群上的可用节点列表。

kubectl get nodes

您应该会收到类似这样的输出 - Kubernetes 集群上有三个可用节点,用作控制平面的主节点,以及用作工作节点的 node1 和 node2。

输入以下命令以获取有关 Kubernetes 集群上每个节点的详细信息。

kubectl describe node

您可以在下面看到主服务器上 Kubernetes 控制平面的详细信息。

以下是node1服务器上工作节点的详细信息。

下面是node2服务器上工作节点的详细信息。

最后,输入以下命令以获取在 Kubernetes 集群上运行的 pod 列表。

kubectl get pods --all-namespaces

在以下输出中,您可以看到Kubernetes 集群上可用的多个命名空间kube-system、kubesphere-system、kubesphere-control-system和kubesphere-monitoring-system,所有 pod 都在运行.

至此,您已经部署了具有多个 Ubuntu 服务器节点的 Kubernetes 集群和 Kubesphere。您还访问了 Kubesphere 管理仪表板并更改了默认管理员密码。

考虑到这一点,您现在可以将应用程序部署到 Kubernetes 和 Kubesphere。在下一步中,您会将简单的 Nginx Web 服务器部署到 Kubernetes 以确保您的 Kubernetes 和 Kubesphere 安装成功。

将 Pod 部署到 Kubernetes 和 Kubesphere

在此示例中,您将把 Nginx pod 部署到 Kubernetes 集群和 Kubesphere。

运行以下命令为 Nginx Web 服务器创建新的部署。在此示例中,我们将基于具有两个副本的 图像nginx:alpine创建新的 Nginx Pod。

kubectl create deployment nginx --image=nginx:alpine --replicas=2

现在创建一个新的服务类型“NodePort”,它将使用以下 kubectl 命令公开 Nginx 部署。此命令将创建一个名为nginx的新 Kubernetes 服务,类型为NodePort,并为 Pod 公开端口80

kubectl create service nodeport nginx --tcp=80:80

接下来,运行以下 kubectl 命令来检查 Kubernetes 集群上正在运行的 pod 列表。您应该会看到两个 Nginx pod 正在运行。

kubectl get pods

现在使用以下命令检查 Kubernetes 上的可用服务列表。您应该看到nginx服务类型 NodePort在 Kubernetes 主机上公开了端口80和端口32241。服务 NodePort 将始终公开 Kubernetes 主机(工作节点)上 xxx-xxxx 范围之间的端口。

kubectl get svc

运行下面的 curl 命令以访问您的 Nginx 部署。

curl 10.233.14.102 curl node1:32241 curl node2:32241

下面是在master服务器上公开的 Nginx pod index.html 页面的输出。

下面是来自node1的 index.html 源代码的输出。

下面是来自node2的 index.html 代码。

现在回到 Kubesphere 管理仪表板。单击应用程序工作负载,然后单击工作负载。您会看到名为nginx的部署可用于两个正在运行的 pod。

单击nginx部署以获取有关您的部署的详细信息。您应该看到nginx部署带有两个副本,并且这两个 pod 的副本正在运行。

接下来,单击服务菜单以获取 Kubernetes 集群上可用的服务列表。您应该会在集群上 看到名为nginx和Kubernetes的服务可用。

单击服务nginx以获取有关该服务的详细信息。下面是一个类似的页面,将显示在您的 Kubesphere 仪表板上。

这样,您现在已经完成了将 Nginx pod 部署到 Kubernetes 集群并从 kubesphere 管理仪表板验证了部署的详细信息。

结论

在本教程中,主要介绍了在多个 Ubuntu 22.04 服务器上部署了 Kubernetes 集群和 Kubesphre,使用 Kubesphere 开发的名为“KubeKey”的自动化工具部署了 Kubernetes。

我们还介绍了如何安装 Kubesphere 并将其配置为 Kubernets Web 管理仪表板,以及Kubesphere 的基本用法,用于查看 Kubernetes 集群和部署、pod 和服务。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3