上一篇文章讲述了在单个节点上安装 KubeSphere和k8s,这节主要讲解k8s多节点集群部署
第一步:设置主机名称hostname--(3台机器都设置)
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2
第二步:安装docker
docker版本要超过19.3.8 +
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker
配置镜像---一定要配置,不然k8s启动各种报错,已尝试
进入 /etc/docker,没有daemon.json文件就自己新建一个
编辑daemon.json文件:
加入这段代码:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
然后重启docker:systemctl restart docker.service
第三步:基础依赖组件安装
- 所有节点必须都能通过
SSH
访问。 - 所有节点时间同步。
- 所有节点都应使用
sudo
/curl
/openssl
/tar
。
rpm -qa openssl --查看是否安装openssl,如果查询到就已经安装了
timedatectl --查看时间是否是上海时区,如果不是需要修改
ssh root@ip --master服务器对其他node节点进行连接测试
重点说明:如果是阿里云Alibaba Cloud Linux系统,那么这些基础依赖早已安装,时间都是上海时间也不需要改。
其他依赖
通过下面查看必须的依赖包是否已经安装
rpm -qa socat
rpm -qa conntrack
如果有没有,执行一下命令
yum install socat conntrack ebtables ipset
第四步:下载KubeKey(k8s都是通过这个软件来安装的)
创建一个目录/usr/local/project目录下
在主节点master上执行,依次执行如下两个命令:
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.2 sh -
# 赋执行权限: chmod +x kk
第五步:创建集群
1、创建配置
./kk create config --with-kubernetes [version] --with-kubesphere [version] ---version是版本号
指定安装版本号,如下:
./kk create config --with-kubernetes v1.22.12 --with-kubesphere v3.3.1 ---会默认生成一个文件 config-sample.yaml
2、编辑配置文件
编辑 config-sample.yaml
默认如下:
(1)、其中主要修改hosts
如果是root密码登录修改方式如下:
默认 root 用户示例:
- {name: master, address: 47.99.108.183, internalAddress: 10.0.1.4, port: 22, user: root, password: Testing123}
使用 SSH 密钥的无密码登录示例:
- {name: master, address: 47.99.108.183, internalAddress: 10.0.1.4, privateKeyPath: "~/.ssh/id_rsa"}
解释说明:
:实例的主机名。
name
address
:任务机和其他实例通过 SSH 相互连接所使用的 IP 地址。根据您的环境,可以是公有 IP 地址或私有 IP 地址。例如,一些云平台为每个实例提供一个公有 IP 地址,用于通过 SSH 访问。在这种情况下,您可以在该字段填入这个公有 IP 地址。
internalAddress
:实例的私有 IP 地址。
(2)、修改roleGroups
etcd
:etcd 节点名称control-plane
:主节点名称worker
:工作节点名称
如图所示:
(3)、选择需要的插件,将no改成yes
111
第六步:使用配置文件创建集群
./kk create cluster -f config-sample.yaml
整个安装过程可能需要 10 到 20 分钟,具体取决于您的计算机和网络环境。
输出信息会显示 Web 控制台的 IP 地址和端口号,默认的 NodePort 是 30880
。现在,您可以使用默认的帐户和密码 (admin/P@88w0rd
) 通过 <NodeIP>:30880
访问控制台