在生产环境中,单节点集群由于集群资源有限并且计算能力不足,无法满足大部分需求。因此,不建议在处理大规模数据时使用单节点集群。此外,这类集群只有一个节点,因此也不具有高可用性。相比之下,在应用程序部署和分发方面,多节点架构是最常见的首选架构。
多节点集群由至少一个主节点和一个工作节点组成,可以使用任何节点作为任务机来执行安装任务。您可以在安装之前或之后根据需要新增节点(例如,为了实现高可用性)。
lMaster:主节点,通常托管控制平面,控制和管理整个系统。
Worker:工作节点,运行部署在其之上的实际应用程序。
最好是干净的linux 环境,系统centos 7.6
需要预先安装docker、socat、conntrack
yum install -y yum-utils device-mapper-persistent-data lvm2
因为在阿里云的ecs机器上面,yum镜像使用的阿里云的,找不到docker的镜像,所以需要第一步的安装基础工具之后使用yum-config-manager来添加对应的yum仓库,执行如下命令
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
阿里云的不能用的话用下面的
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
通过上面两个步骤我们已经建立好了docker-ce的镜像链接,接下来只需要安装docker-ce就可以了,执行如下命令,安装这个的时间会稍微有点长,需要耐心的等待大概3-5分钟
yum install docker-ce
systemctl start docker
systemctl stop docker
systemctl enable docker
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://desaby25.mirror.aliyuncs.com"],
"log-driver": "json-file",
"insecure-registries":["harbor.iot.store:8085"],
"log-opts": {
"max-size": "1000m"
}
}
systemctl daemon-reload
systemctl restart docker
yum install socat conntrack
请确保
/etc/resolv.conf
中的 DNS 地址可用,否则,可能会导致集群中的 DNS 出现问题。
如果您的网络配置使用防火墙或安全组,请务必确保基础设施组件可以通过特定端口相互通信。建议您关闭防火墙或遵循指南端口要求。
1、从 GitHub 发布页面下载 KubeKey 或直接使用以下命令。
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.0.1 sh -
chmod +x kk
./kk create config --with-kubernetes v1.17.9 --with-kubesphere v3.0.0
2.编辑配置文件
如果您不更改名称,将创建默认文件 config-sample.yaml。编辑文件,以下是多节点集群配置文件的示例,它具有一个主节点,可以自定的数据如下,配置文件中其他配置不变
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
master:
-master
worker:
-node1
-node2
controlPlaneEndpoint:
domain: lb.kubesphere.local
address: ""
port: "6443"
截图示例如下
参照上方示例在
hosts
下列出您的所有机器并添加详细信息。
name
实例的主机名。
address
任务机和其他实例通过 SSH 相互连接所使用的 IP 地址。根据您的环境,可以是公共 IP 地址或私有 IP 地址。例如,一些云平台为每个实例提供一个公共 IP 地址,用于通过 SSH 访问。在这种情况下,您可以在该字段填入这个公共 IP 地址。
internalAddress
实例的私有 IP 地址。默认使用22端口
1、自定义端口登录
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, port: 8022, user: ubuntu, password: Testing123}
2、默认 root 用户示例:
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, password: Testing123}
3、使用 SSH 密钥的无密码登录示例:
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, privateKeyPath: "~/.ssh/id_rsa"}
etcd
etcd 节点名称
master
主节点名称
worker
工作节点名称
controlPlaneEndpoint(仅适用于高可用安装)
controlPlaneEndpoint
使您可以为高可用集群定义外部负载均衡器。当且仅当安装多个主节点时,才需要准备和配置外部负载均衡器。请注意,config-sample.yaml中的地址和端口应缩进两个空格,
addons
您可以在 config-sample.yaml 的 addons字段下指定存储,从而自定义持久化存储插件,例如 NFS 客户端、Ceph RBD、GlusterFS 等。有关更多信息,请参见持久化存储配置。
备注
KubeSphere 会默认安装 OpenEBS,为开发和测试环境配置 LocalPV,方便新用户。在本多节点安装示例中,使用了默认存储类型(本地存储卷)。对于生产环境,请使用 NFS/Ceph/GlusterFS/CSI 或者商业存储产品作为持久化存储解决方案。
./kk create cluster -f config-sample.yaml
备注如果使用其他名称,则需要将上面的 config-sample.yaml更改为您自己的文件。
整个安装过程可能需要 10 到 20 分钟,具体取决于您的计算机和网络环境。
安装完成后,您会看到如下内容:
现在,您可以通过
http://{IP}:30880
(例如,您可以使用 EIP)使用帐户和密码
admin/P@88w0rd
访问 KubeSphere Web 控制台。
1、设置host的集群管理角色
2、更改操作如下
3、获取host集群的jwt秘钥
kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret
获取到的秘钥格式如下
jwtSecret: "gfIwilcc0WjNGKJ5DLeksf2JKfcLgTZU"
4、member设置jwt和role角色信息
5、在host集群中,添加集群管理
选择代理模式以后,页面中会提示需要复制配置文件到menmber集群的服务中,创建一个agent.yaml文件,同时复制host集群中提示的数据信息 kubectl create -f agent.yaml
安装集群
https://kubesphere.com.cn/docs/installing-on-linux/introduction/multioverview/ https://kubesphere.com.cn/docs/installing-on-linux/public-cloud/install-kubesphere-on-huaweicloud-ecs/
添加member集群
https://kubesphere.com.cn/docs/multicluster-management/enable-multicluster/agent-connection/