美文网首页javaWeb学习k8s
搭建Kubesphere集群

搭建Kubesphere集群

作者: 番茄____ | 来源:发表于2021-04-14 16:47 被阅读0次

    快速部署KubeSphere容器平台

    1.环境描述

    image.png
    • 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

    image.png

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

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

    2.1 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    

    2.2 关闭swap

    swapoff -a
    sed -i  '/ swap / s/^/#/' /etc/fstab
    

    2.3 关闭Selinux

    setenforce 0
    sed -i '/=enforcing/ s/enforcing/disabled/' /etc/selinux/config
    

    2.4 安装所需软件

    yum -y install net-tools sshpass unzip lrzsz vim 
    

    2.5 设置服务器hostname

    hostnamectl set-hostname ***(对应每个服务器)
    

    3. 安装相关组件

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

    3.1 登录kubeoperator服务器

    ssh 10.10.12.170
    

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

    image.png

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

    image.png
    chmod +x prepare.sh
    

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

     vim /tmp/tmp/prepare.sh
    
    image.png
    • installerIp:kubeoperatorIP地址
    • cephPublicNetwork:ceph网段
    • cephPublicNetworkCard:ceph集群物理机网卡名称
    • cephDisk:ceph盘符名称

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

    3.5 执行prepare.sh

    sh /tmp/tmp/prepare.sh
    
    image.png

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

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

    cd /tmp/tmp/devops/
    sh deploy-docker.sh 
    
    image.png

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

    sh deploy-harbor.sh 
    
    image.png

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

    image.png

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

    • 账号:admin
    • 密码:Harbor12345
    image.png

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

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

    sh deploy-kubeoperator.sh 
    
    image.png image.png

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

    • 账号:admin
    • 密码:kubeoperator@admin123
    image.png

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

    cd /tmp/tmp/ceph/
    sh deploy-ceph.sh
    
    image.png

    (大概持续18分钟左右)

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

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

    echo "admin" > /tmp/file
    ceph dashboard ac-user-create admin -i /tmp/file administrator
    

    另外需要注意的是安装结束时Install Ceph Dashboard : In Progress (0:02:20)表明当前dashboard还在初始化,需要等待9443端口启动后(使用以下命令检查)再进行下一步操作

    netstat -ntpl | grep 9443
    

    4. 配置kubeoperator

    4.1 设置系统IP

    image.png

    填写kubeoperatorIP地址

    4.2 创建主机登录凭据

    image.png
    image.png

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

    4.3 创建主机

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

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

    4.3 创建kubesphere集群

    4.3.1 创建资源

    image.png

    点击项目-单击kubeoperator管理员

    image.png image.png image.png

    添加资源主机

    4.3.2 创建集群

    image.png

    集群-->添加

    4.3.3 集群信息

    image.png

    4.3.4 高级选项

    image.png

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

    4.3.5 节点信息

    image.png

    4.3.6 确认信息

    image.png
    image.png

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

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

    4.3.7 查看日志

    image.png

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

    image.png

    4.4 登录kubesphere

    http://10.10.12.171:30880

    image.png
    • 账号:admin
    • 密码:P@88w0rd
    image.png

    5.KubeSphere配置

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

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

    5.1.1 创建账户

    安装 KubeSphere 之后,您需要向平台添加具有不同角色的用户,以便他们可以针对自己授权的资源在不同的层级进行工作。一开始,系统默认只有一个帐户 admin,具有 platform-admin 角色。在本步骤中,您将创建一个帐户 user-manager,然后使用 user-manager 创建新帐户。

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

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

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

    image.png
    在帐户角色中,有如下所示四个可用的内置角色。接下来要创建的第一个帐户将被分配 users-manager 角色。
    内置角色 描述
    workspaces-manager 企业空间管理员,管理平台所有企业空间。
    users-manager 用户管理员,管理平台所有用户。
    platform-regular 平台普通用户,在被邀请加入企业空间或集群之前没有任何资源操作权限
    platform-admin 平台管理员,可以管理平台内的所有资源。

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

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

    image.png

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

    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.查看创建的四个帐户。

    image.png

    5.1.2 创建企业空间

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

    • 1.以 ws-manager 身份登录 KubeSphere,它具有管理平台上所有企业空间的权限。点击左上角的平台管理,选择访问控制。在企业空间中,可以看到仅列出了一个默认企业空间 system-workspace,即系统企业空间,其中运行着与系统相关的组件和服务,您无法删除该企业空间。


      image.png
    • 2.点击右侧的创建,将新企业空间命名为 demo-workspace,并将用户 ws-admin 设置为企业空间管理员,如下图所示:

      image.png

      完成后,点击创建

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

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

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

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

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

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

    5.1.4 创建角色

    完成上述步骤后,您已了解可以为不同级别的用户授予不同角色。先前步骤中使用的角色都是 KubeSphere 提供的内置角色。在此步骤中,您将学习如何创建自定义角色以满足工作需求。

    • 1.再次以 admin 身份登录控制台,然后转到访问控制

    • 2.帐户角色中列出了四个系统角色,无法删除或编辑。点击创建并设置角色标识符。在本示例将创建一个名为 roles-manager 的角色。

    image.png

    点击编辑权限继续。

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

    5.2 创建并部署WordPress

    WordPress 简介

    WordPress(使用 PHP 语言编写)是免费、开源的内容管理系统,用户可以使用 WordPress 搭建自己的网站。完整的 WordPress 应用程序包括以下 Kubernetes 对象,由 MySQL 作为后端数据库。

    image.png

    准备工作

    您需要准备一个 project regular 帐户,并在一个项目中赋予该帐户 operator 角色(该用户已被邀请参加该项目)。有关更多信息,请参见5.1创建企业空间、项目、帐户和角色。

    5.2.1 创建密钥

    创建 MySQL 密钥

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

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

    创建 WordPress 密钥
    按照以上相同的步骤创建一个名为 wordpress-secret 的 WordPress 密钥,输入键 (Key) WORDPRESS_DB_PASSWORD 和值 (Value) 123456。创建的密钥显示在列表中,如下所示:

    image.png

    5.2.2 创建存储卷

    • 1.访问存储管理下的存储卷,点击创建。
    image.png
    • 2.输入卷的基本信息(例如,将其命名为 wordpress-pvc),然后点击下一步

    • 3.在存储卷设置中,需要选择一个可用的存储类型,并设置访问模式存储卷容量。您可以直接使用如下所示的默认值,点击下一步继续。

    image.png
    • 4.对于高级设置,您无需为当前步骤添加额外的配置,点击创建完成即可。

    5.2.3 创建应用程序

    添加 MySQL 后端组件

    • 1.导航到应用负载下的应用,选择自制应用,再点击构建自制应用
    image.png
    • 2.输入基本信息(例如,在应用名称一栏输入 wordpress),然后点击下一步
    image.png
    • 3.在服务组件中,点击添加服务以在应用中设置组件。
    image.png
    • 4.设置组件的服务类型为有状态服务

    • 5.输入有状态服务的名称(例如 mysql)并点击下一步

    image.png
    • 6.在容器镜像中,点击添加容器镜像
    image.png
    • 7.在搜索框中输入 mysql:5.6,按下回车键,然后点击使用默认端口。由于配置还未设置完成,请不要点击右下角的 √ 按钮。
    image.png

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

    • 8.下滚动到环境变量,点击引用配置文件密匙。输入名称 MYSQL_ROOT_PASSWORD,然后选择资源 mysql-secret 和前面步骤中创建的密钥 MYSQL_ROOT_PASSWORD,完成后点击 √ 保存配置,最后点击下一步继续。
    image.png
    • 9.选择挂载存储中的添加存储卷模板,输入存储卷名称 (mysql) 和挂载路径(模式:读写,路径:/var/lib/mysql)的值,如下所示:
    image.png
    完成后,点击 √ 保存设置并点击下一步继续。
    • 10.在高级设置中,可以直接点击添加,也可以按需选择其他选项。
    image.png
    • 11.现在,MySQL 组件已经添加完成,如下所示:
    image.png

    添加 WordPress 前端组件

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

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

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

    5.2.4 验证资源

    工作负载中,分别检查部署有状态副本集中 wordpress-v1 和 mysql-v1 的状态。如果它们的运行状态如下图所示,就意味着 WordPress 已经成功创建。

    image.png image.png

    5.2.5 通过NodePort 访问WordPress

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

    相关文章

      网友评论

        本文标题:搭建Kubesphere集群

        本文链接:https://www.haomeiwen.com/subject/edqghltx.html