Kubesphere集群搭建教程

2021-12-16 22:27:18 浏览数 (1)

1.环境描述

  • master :10.10.12.171
  • worker1:10.10.12.172
  • worker2:10.10.12.173
  • Kubeoperator:10.10.12.170(安装ansible并通过Kubeoperator对kubesphere集群部署kubesphere软件,要求根目录至少需要200G用于储存所需的安装包)

所有服务器均采用centos7.6版本,最小安装模式,每个服务器均有一个空余磁盘用于部署ceph

这里使用的是/dev/sdb磁盘,用于安装ceph集群

2. 环境准备(所有节点)

2.1 关闭防火墙

代码语言:txt复制
systemctl stop firewalld
代码语言:txt复制
systemctl disable firewalld

2.2 关闭swap

代码语言:txt复制
swapoff -a
代码语言:txt复制
sed -i  '/ swap / s/^/#/' /etc/fstab

2.3 关闭Selinux

代码语言:txt复制
setenforce 0
代码语言:txt复制
sed -i '/=enforcing/ s/enforcing/disabled/' /etc/selinux/config

2.4 安装所需软件

代码语言:txt复制
yum -y install net-tools sshpass unzip lrzsz vim 

2.5 设置服务器hostname

代码语言:txt复制
hostnamectl set-hostname ***(对应每个服务器)

3. 安装相关组件

kubeoperator描述:在kubeoperator上面安装ansible工具并通过kubeoperator工具对kubesphere集群的三台初始服务器安装Kubernetes和Kubesphere容器平台。

3.1 登录kubeoperator服务器

代码语言:txt复制
ssh 10.10.12.170

3.2 将所需软件拷贝到kubeoperator下的/tmp/tmp目录中

3.3 给shell脚本文件添加执行权限

代码语言:txt复制
chmod  x prepare.sh

3.4 根据实际环境情况对应修改prepare.sh内容

代码语言:txt复制
 vim /tmp/tmp/prepare.sh
  • installerIp :kubeoperatorIP地址
  • cephPublicNetwork :ceph网段
  • cephPublicNetworkCard :ceph集群物理机网卡名称
  • cephDisk :ceph盘符名称

备注:ceph集群统一使用root登录,密码为Changeme_123

3.5 执行prepare.sh

代码语言:txt复制
sh /tmp/tmp/prepare.sh

前期准备完成(整个过程大概1分钟)

3.6 执行deploy-docker.sh,安装docker

代码语言:txt复制
cd /tmp/tmp/devops/
代码语言:txt复制
sh deploy-docker.sh 

3.7 执行deploy-harbor.sh,安装Harbor镜像仓库

代码语言:txt复制
sh deploy-harbor.sh 

整个过程大概持续10分钟左右

当ansible脚本完成后,打开网页浏览器输入: https://10.10.12.170

  • 账号:admin
  • 密码:Harbor12345

Harbor里面包含了所需要的相关kubesphere的安装包

3.8 执行deploy-kubeoperator.sh,安装kubeoperator

代码语言:txt复制
sh deploy-kubeoperator.sh 

当ansible脚本完成后,打开网页浏览器输入: http://172.16.12.249:8888

  • 账号:admin
  • 密码:kubeoperator@admin123

3.9 执行deploy-ceph.sh,安装ceph

代码语言:txt复制
cd /tmp/tmp/ceph/
代码语言:txt复制
sh deploy-ceph.sh

(大概持续18分钟左右)

如果 TASK ceph-dashboard : create dashboard admin user 执行报错, 请忽略此异常

ceph dashboard 账户密码可以使用以下命令进行创建,创建后可以使用admin/admin登录dashboard查看和管理ceph

代码语言:txt复制
echo "admin" > /tmp/file
代码语言:txt复制
ceph dashboard ac-user-create admin -i /tmp/file administrator

另外需要注意的是安装结束时 Install Ceph Dashboard : In Progress (0:02:20)

表明当前dashboard还在初始化,需要等待9443端口启动后(使用以下命令检查)再进行下一步操作

代码语言:txt复制
netstat -ntpl | grep 9443

4. 配置kubeoperator

4.1 设置系统IP

填写kubeoperator IP地址

4.2 创建主机登录凭据

创建 主机登录所需的登录凭据

4.3 创建主机

  • 名称:填写主机名称
  • ip:填写主机物理IP
  • 端口: 填写SSH端口
  • 凭据: 选择root的密码凭据

填写三台主机以后等待初始化,初始化完成后显示 正常 状态

4.3 创建kubesphere集群

4.3.1 创建资源

点击项目-单击kubeoperator管理员

添加资源主机

4.3.2 创建集群

集群-- >添加

4.3.3 集群信息
4.3.4 高级选项

图片参数仅供参考,可以根据实际情况部署

4.3.5 节点信息
4.3.6 确认信息

等待集群安装,大概持续50分钟左右

如果有报错可以点击重试再试一次

4.3.7 查看日志

可以在这里面查到安装进度日志

4.4 登录kubesphere

http://10.10.12.171:30880

  • 账号:admin
  • 密码:P@88w0rd

5.KubeSphere配置

5.1 创建企业空间、项目、帐户和角色

本快速入门演示如何创建企业空间、角色和用户帐户。

5.1.1 创建账户

安装 KubeSphere 之后,您需要向平台添加具有不同角色的用户,以便他们可以针对自己授权的资源在不同的层级进行工作。一开始,系统默认只有一个帐户

admin,具有 platform-admin 角色。在本步骤中,您将创建一个帐户 user-manager,然后使用 user-manager

创建新帐户。

1.使用默认帐户和密码 (admin/P@88w0rd) 以 admin 身份登录 Web 控制台。

  • 出于安全考虑,强烈建议您在首次登录控制台时更改密码。若要更改密码,在右上角的下拉菜单中选择个人设置,在密码设置中设置新密码,您也可以在个人设置中修改控制台语言。

2.登录控制台后,点击左上角的平台管理,然后选择访问控制。

在帐户角色中,有如下所示四个可用的内置角色。接下来要创建的第一个帐户将被分配 users-manager 角色。

内置角色

描述

workspaces-manager

企业空间管理员,管理平台所有企业空间。

users-manager

用户管理员,管理平台所有用户。

platform-regular

平台普通用户,在被邀请加入企业空间或集群之前没有任何资源操作权限

platform-admin

平台管理员,可以管理平台内的所有资源。

内置角色由 KubeSphere 自动创建,无法编辑或删除。

3.在帐户管理中,点击创建。在弹出窗口中,提供所有必要信息(带有*标记),然后在角色字段选择 users-manager。请参考下图示例。

完成后,点击 确定 。新创建的帐户将显示在 帐户管理 中的帐户列表中。

4.切换帐户使用 user-manager 重新登录,创建如下四个新帐户,这些帐户将在其他的教程中使用。

帐户登出请点击右上角的用户名,然后选择 登出

帐户

角色

描述

ws-manager

workspaces-manager

创建和管理所有企业空间。

ws-admin

platform-regular

管理指定企业空间中的所有资源(在此示例中,此帐户用于邀请新成员加入该企业空间)。

platform-admin

platform-regular

创建和管理项目以及 DevOps 工程,并邀请新成员加入项目。

project-regular

platform-regular

project-regular 将由 project-admin 邀请至项目或

DevOps 工程。该帐户将用于在指定项目中创建工作负载、流水线和其他资源。

5.查看创建的四个帐户。

5.1.2 创建企业空间

您需要使用上一个步骤中创建的帐户 ws-manager 创建一个企业空间。作为管理项目、DevOps 工程和组织成员的基本逻辑单元,企业空间是

KubeSphere 多租户系统的基础。

  • 1.以 ws-manager 身份登录 KubeSphere,它具有管理平台上所有企业空间的权限。点击左上角的平台管理,选择访问控制。在企业空间中,可以看到仅列出了一个默认企业空间 system-workspace,即系统企业空间,其中运行着与系统相关的组件和服务,您无法删除该企业空间。
  • 2.点击右侧的 创建 ,将新企业空间命名为 demo-workspace,并将用户 ws-admin 设置为企业空间管理员,如下图所示:

完成后,点击 创建

如果您已启用 多集群功能 ,您需要为企业空间 分配一个或多个可用集群 ,以便项目可以在集群中创建。

  • 3.登出控制台,然后以 ws-admin 身份重新登录。在 企业空间设置 中,选择 企业成员 ,然后点击 邀请成员
  • 4.邀请 project-admin 和 project-regular 进入企业空间,分别授予他们 workspace-self-provisioner 和 workspace-viewer 角色。

实际角色名称的格式:<workspace name>-<role name>。例如,在名为 demo-workspace 的企业空间中,角色 viewer 的实际角色名称为 demo-workspace-viewer。

  • 5.将 project-admin 和 project-regular 都添加到企业空间后,点击确定。在企业成员中,您可以看到列出的三名成员。

帐户

角色

描述

ws-admin

workspace-admin

管理指定企业空间中的所有资源(在此示例中,此帐户用于邀请新成员加入该企业空间)。

platform-admin

workspace-self-provisioner

创建和管理项目以及 DevOps 工程,并邀请新成员加入项目。

project-regular

workspace-viewer

project-regular 将由 project-admin 邀请至项目或

DevOps 工程。该帐户将用于在指定项目中创建工作负载、流水线和其他资源。

5.1.3 创建项目

在此步骤中,您需要使用在上一步骤中创建的帐户 project-admin 来创建项目。KubeSphere 中的项目与 Kubernetes

中的命名空间相同,为资源提供了虚拟隔离。有关更多信息,请参见 命名空间

  • 1.以 project-admin 身份登录 KubeSphere,在 项目管理 中,点击 创建
  • 2.输入项目名称(例如 demo-project),然后点击 确定 完成,您还可以为项目添加别名和描述。
  • 3.在 项目管理 中,点击刚创建的项目查看其详细信息。
  • 4.在项目的 概览 页面,默认情况下未设置项目配额。您可以点击 设置 并根据需要指定资源请求和限制(例如:CPU 和内存的限制分别设为 1 Core 和 1000 Gi)。
  • 5.邀请 project-regular 至该项目,并授予该用户 operator 角色。请参考下图以了解具体步骤。

具有 operator 角色的用户是项目维护者,可以管理项目中除用户和角色以外的资源。

  • 6.在创建 路由 (即 Kubernetes 中的 Ingress)之前,需要启用该项目的网关。网关是在项目中运行的 NGINX Ingress 控制器。若要设置网关,请转到 项目设置 中的 高级设置 ,然后点击 设置网关 。此步骤中仍使用帐户 project-admin。
  • 7.选择访问方式 NodePort ,然后点击 保存
  • 8.在 外网访问 下,可以在页面上看到网关地址以及 http/https 的端口。

5.1.4 创建角色

完成上述步骤后,您已了解可以为不同级别的用户授予不同角色。先前步骤中使用的角色都是 KubeSphere

提供的内置角色。在此步骤中,您将学习如何创建自定义角色以满足工作需求。

  • 1.再次以 admin 身份登录控制台,然后转到 访问控制
    1. 帐户角色 中列出了四个系统角色,无法删除或编辑。点击 创建 并设置 角色标识符 。在本示例将创建一个名为 roles-manager 的角色。

点击 编辑权限 继续。

  • 3.在 访问控制 中,选择该角色所拥有的权限。例如,本示例选择 帐户查看角色管理角色查看 。点击 确定 完成创建。
  • 4.新创建的角色将列于 帐户角色 中,可以点击右侧的三个点对其进行编辑。
  • 5.在 帐户管理 中,添加一个新帐户并授予其 roles-manager 角色,您也可以通过编辑将现有帐户的角色更改为 roles-manager。

5.2 创建并部署WordPress

WordPress 简介

WordPress(使用 PHP 语言编写)是免费、开源的内容管理系统,用户可以使用 WordPress 搭建自己的网站。完整的 WordPress

应用程序包括以下 Kubernetes 对象,由 MySQL 作为后端数据库。

准备工作

您需要准备一个 project regular 帐户,并在一个项目中赋予该帐户 operator

角色(该用户已被邀请参加该项目)。有关更多信息,请参见5.1创建企业空间、项目、帐户和角色。

5.2.1 创建密钥

创建 MySQL 密钥

环境变量 WORDPRESS_DB_PASSWORD 是连接到 WordPress 数据库的密码。在此步骤中,您需要创建一个密钥来保存将在 MySQL

Pod 模板中使用的环境变量。

  • 1.使用 project-regular 帐户登录 KubeSphere 控制台,访问 demo-project 的详情页并导航到 配置中心 。在 密钥 中,点击右侧的 创建
  • 2.输入基本信息(例如,将其命名为 mysql-secret)并点击 下一步 。在下一页中,选择 类型默认 ,然后点击添加数据来添加键值对。输入如下所示的键 (Key) MYSQL_ROOT_PASSWORD 和值 (Value) 123456,点击右下角 √ 进行确认。完成后,点击 创建 按钮以继续。

创建 WordPress 密钥

按照以上相同的步骤创建一个名为 wordpress-secret 的 WordPress 密钥,输入键 (Key)

WORDPRESS_DB_PASSWORD 和值 (Value) 123456。创建的密钥显示在列表中,如下所示:

5.2.2 创建存储卷

  • 1.访问存储管理下的存储卷,点击创建。
  • 2.输入卷的基本信息(例如,将其命名为 wordpress-pvc),然后点击 下一步
  • 3.在 存储卷设置 中,需要选择一个可用的 存储类型 ,并设置 访问模式存储卷容量 。您可以直接使用如下所示的默认值,点击 下一步 继续。
  • 4.对于 高级设置 ,您无需为当前步骤添加额外的配置,点击 创建 完成即可。

5.2.3 创建应用程序

添加 MySQL 后端组件

  • 1.导航到 应用负载 下的 应用 ,选择 自制应用 ,再点击 构建自制应用
  • 2.输入基本信息(例如,在应用名称一栏输入 wordpress),然后点击 下一步
  • 3.在 服务组件 中,点击 添加服务 以在应用中设置组件。
  • 4.设置组件的服务类型为 有状态服务
  • 5.输入有状态服务的名称(例如 mysql)并点击 下一步
  • 6.在 容器镜像 中,点击 添加容器镜像
  • 7.在搜索框中输入 mysql:5.6,按下 回车键 ,然后点击 使用默认端口 。由于配置还未设置完成,请不要点击右下角的 √ 按钮。

在高级设置中,请确保内存限制不小于 1000 Mi,否则 MySQL 可能因内存不足而无法启动。

  • 8.下滚动到 环境变量 ,点击 引用配置文件密匙 。输入名称 MYSQL_ROOT_PASSWORD,然后选择资源 mysql-secret 和前面步骤中创建的密钥 MYSQL_ROOT_PASSWORD,完成后点击 √ 保存配置,最后点击下一步继续。
  • 9.选择 挂载存储 中的 添加存储卷模板 ,输入 存储卷名称 (mysql) 和 挂载路径 (模式:读写,路径:/var/lib/mysql)的值,如下所示:

完成后,点击 √ 保存设置并点击 下一步 继续。

  • 10.在 高级设置 中,可以直接点击 添加 ,也可以按需选择其他选项。
  • 11.现在,MySQL 组件已经添加完成,如下所示:

添加 WordPress 前端组件

  • 12.再次点击 添加服务 ,这一次选择 无状态服务 。输入名称 wordpress 并点击 下一步
  • 13.与上述步骤类似,点击 添加容器镜像 ,在搜索栏中输入 wordpress:4.8-apache 并按下 回车键 ,然后点击 使用默认端口
  • 14.向下滚动到 环境变量 ,点击 引用配置文件或密匙 。这里需要添加两个环境变量,请根据以下截图输入值:
    • 对于 WORDPRESS_DB_PASSWORD,请选择在步骤 1 中创建的 wordpress-secret 和 WORDPRESS_DB_PASSWORD。
    • 点击 添加环境变量 ,分别输入 WORDPRESS_DB_HOST 和 mysql 作为键 (Key) 和值 (Value)。

点击 √ 保存配置,再点击下一步继续。

  • 15.在 挂载存储 中,点击 添加存储卷 ,并选择 已有存储卷
  • 16.选择上一步创建的 wordpress-pvc,将模式设置为读写,并输入挂载路径 /var/www/html。点击 √ 保存,再点击 下一步 继续。
  • 17.在 高级设置 中,可以直接点击 添加 创建服务,也可以按需选择其他选项。
  • 18.现在,前端组件也已设置完成。点击 下一步 继续。
  • 19.您可以在这里设置路由规则(应用路由 Ingress),也可以直接点击 创建
  • 20.创建后,应用将显示在下面的列表中。

5.2.4 验证资源

工作负载中 ,分别检查 部署有状态副本集中 wordpress-v1 和 mysql-v1

的状态。如果它们的运行状态如下图所示,就意味着 WordPress 已经成功创建。

5.2.5 通过NodePort 访问WordPress

  • 1.若要在集群外访问服务,请首先导航到 服务 。点击 wordpress 右侧的三个点后,选择 编辑外网访问
  • 2.在 访问方式 中选择 NodePort,然后点击 确定
  • 3.点击服务进入详情页,可以看到暴露的端口。
  • 4.通过 {Node IP}:{NodePort} 访问此应用程序,可以看到下图:

0 人点赞