一、K8S系列教程KubeSphere-多节点安装KubeSphere

501次阅读
没有评论

一、准备 Linux 主机

本教程使用 3 台虚机,硬件配置为4C8G。在这3台虚机上将安装 CentOS Linux release 7.9_mini 2009操作系统,用于 KubeSphere 最小化安装

需要安装docker20.10

执行命令:

# yum update -y
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
# yum install -y docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io
# systemctl start docker && systemctl enable docker

安装依赖包

# yum update -y
# yum install openssl openssl-devel socat epel-release conntrack-tools -y

1.1 系统要求luic22df.png

/var/lib/docker 路径主要用于存储容器数据,在使用和操作过程中数据量会逐渐增加。因此,在生产环境中,建议为 /var/lib/docker 单独挂载一个硬盘。CPU 必须为 x86_64,暂时不支持 Arm 架构的 CPU。

1.2 节点要求

所有节点必须都能通过 SSH 访问。
所有节点时间同步。
所有节点都应使用 sudo/curl/openssl/tar。

1.3 容器运行时

您的集群必须有一个可用的容器运行时。如果您使用 KubeKey 搭建集群,KubeKey 会默认安装最新版本的 Docker。或者,您也可以在创建集群前手动安装 Docker 或其他容器运行时。luic2dib.png

1.4 依赖项要求

KubeKey 可以一同安装 Kubernetes 和 KubeSphere。根据要安装的 Kubernetes 版本,需要安装的依赖项可能会不同。您可以参考下表,查看是否需要提前在节点上安装相关依赖项。luic2jcg.png

1.5 网络和 DNS 要求

请确保 /etc/resolv.conf 中的 DNS 地址可用,否则,可能会导致集群中的 DNS 出现问题。
如果您的网络配置使用防火墙规则或安全组,请务必确保基础设施组件可以通过特定端口相互通信。建议您关闭防火墙。有关更多信息,请参见端口要求。
支持的 CNI 插件:Calico 和 Flannel。其他插件也适用(例如 Cilium 和 Kube-OVN 等),但请注意它们未经充分测试。

建议您使用干净的操作系统(即不安装任何其他软件)。否则,可能会产生冲突。如果您从 dockerhub.io 下载镜像时遇到问题,建议提前准备仓库的镜像地址(即加速器)。请参见为安装配置加速器或为 Docker Daemon 配置仓库镜像。
本示例包括以下三台主机,其中主节点充当任务机。

主机名 主机 IP 角色
master 10.100.100.3 master
node1 10.100.100.4 worker
node2 10.100.100.5 worker

二、下载 KubeKey

先执行以下命令以确保您从正确的区域下载 KubeKey。所有机器都要安装

# export KKZONE=cn
# curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.13 sh -

下载 KubeKey 后,如果您将其传输至访问 Googleapis 同样受限的新机器,请您在执行以下步骤之前务必再次执行 export KKZONE=cn 命令。

为 kk 添加可执行权限:

# chmod +x kk

三、创建集群

创建示例配置文件,您可以使用默认配置创建示例配置文件,也可以为该文件指定其他文件名或其他文件夹。

# ./kk create config --with-kubernetes v1.22.12 --with-kubesphere v3.4.1

编辑配置文件

如果您不更改名称,那么将创建默认文件 config-sample.yaml。编辑文件,以下是多节点集群(具有一个主节点)配置文件的示例。若要自定义 Kubernetes 相关参数,
请参考 Kubernetes 集群配置。

spec:

  hosts:

  - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, user: ubuntu, password: Testing123}

  - {name: node1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: ubuntu, password: Testing123}

  - {name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: ubuntu, password: Testing123}

  roleGroups:

 etcd:

 - master

 control-plane:

 - master

 worker:

 - node1

 - node2

  controlPlaneEndpoint:

 domain: lb.kubesphere.local

 address: ""

 port: 6443

注意修改红框位置luic3p0x.png

选项说明

roleGroups
etcd:etcd 节点名称
control-plane:主节点名称
worker:工作节点名称

controlPlaneEndpoint(仅适用于高可用安装)您需要在 controlPlaneEndpoint 部分为高可用集群提供外部负载均衡器信息。当且仅当您安装多个主节点时,才需要准备和配置外部负载均衡器。请注意,config-sample.yaml 中的地址和端口应缩进两个空格,address 应为您的负载均衡器地址。有关详细信息,请参见高可用配置。

addons
您可以在 config-sample.yaml 的 addons 字段下指定存储,从而自定义持久化存储插件,例如 NFS 客户端、Ceph RBD、GlusterFS 等。有关更多信息,请参见持久化存储配置。
KubeSphere 会默认安装 OpenEBS,为开发和测试环境配置 LocalPV,方便新用户使用。在本多节点安装示例中,使用了默认存储类型(本地存储卷)。对于生产环境,您可以使用 Ceph/GlusterFS/CSI 或者商业存储产品作为持久化存储解决方案。

使用配置文件创建集群
运行如下命令后,输入yes继续安装

# ./kk create cluster -f config-sample.yaml

luic4ffq.png

整个安装过程可能需要 10 到 20 分钟,具体取决于您的计算机和网络环境。

验证安装

安装完成后,您会看到如下内容:

# kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

输入命令确认安装成功一、K8S系列教程KubeSphere-多节点安装KubeSphere
现在,您可以通过 <NodeIP:30880 使用默认帐户和密码 (admin/P@88w0rd) 访问 KubeSphere 的 Web 控制台。luic5dh7.png

四、启用 kubectl 自动补全

KubeKey 不会启用 kubectl 自动补全功能,请参见以下内容并将其打开:请确保已安装 bash-autocompletion 并可以正常工作。

# Install bash-completion
apt-get install bash-completion

# Source the completion script in your ~/.bashrc file
echo 'source <(kubectl completion bash)' >>~/.bashrc

# Add the completion script to the /etc/bash_completion.d directory
kubectl completion bash >/etc/bash_completion.d/kubectl
正文完
 
oakcdrom
版权声明:本站原创文章,由 oakcdrom 2024-04-02发表,共计3296字。
转载说明:转载请注明出处。
评论(没有评论)