KubeSphere 多机部署(二)安装 KubeSphere 与 K8s 集群
这是「KubeSphere 多机部署」系列的第 2 篇,概览与目录见 README。 开始前请先完成 01-主机环境与系统优化 的基线设置。
步骤 2:下载 KubeKey
请按 KubeSphere 官方文档下载 KubeKey(区分「能正常访问 GitHub/Googleapis」与「访问受限」两种情况)。
先执行以下命令以确保从国内区域下载 KubeKey:
export KKZONE=cn
执行以下命令下载 KubeKey:
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
备注:
- 下载 KubeKey 后,如果把它传到另一台访问 Googleapis 同样受限的机器,请在执行后续步骤前再次执行
export KKZONE=cn。- 以上命令会下载指定版本(这里是
v3.0.7),可修改版本号下载其它版本。
为 kk 添加可执行权限:
chmod +x kk
步骤 3:创建集群
多节点安装需要通过指定配置文件来创建集群。
1. 创建示例配置文件
./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]
备注:
- 安装 KubeSphere 3.3 建议的 Kubernetes 版本:v1.20.x、v1.21.x、v1.22.x、v1.23.x、v1.24.x(带星号的版本在边缘节点上可能有部分功能不可用,如需边缘节点推荐 v1.21.x)。不指定版本时 KubeKey 默认安装 Kubernetes v1.23.10。
- 命令中不加
--with-kubesphere则不部署 KubeSphere(只能用配置文件中的addons字段安装,或后续./kk create cluster时再加该标志)。- 加
--with-kubesphere但不指定版本时,会安装最新版 KubeSphere。
示例:
# 使用默认配置创建示例配置文件(也可用 -f 指定文件名/目录)
./kk create config [-f ~/myfolder/abc.yaml]
# 指定要安装的 KubeSphere 版本(例如 v3.3.2)
./kk create config --with-kubesphere [version]
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
control-plane:
- master
worker:
- node1
- node2
controlPlaneEndpoint:
domain: lb.kubesphere.local
address: ""
port: 6443
hosts(主机):列出所有机器并填写详细信息。
name:实例的主机名。address:任务机与其它实例通过 SSH 互连所用的 IP(可公网或私网,视环境而定)。internalAddress:实例的私有 IP 地址。
登录信息示例:
# 使用密码登录(端口非 22 时需显式写 port,22 为默认可省略)
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, port: 8022, user: ubuntu, password: Testing123}
# 默认 root 用户
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, password: Testing123}
# 使用 SSH 密钥免密登录
hosts:
- {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, privateKeyPath: "~/.ssh/id_rsa"}
提示:
- 安装前可用
hosts里的信息通过 SSH 测试任务机与其它实例的网络连通性。- 安装前确保端口
6443(API 服务器默认端口)未被占用,否则会冲突。
roleGroups:
etcd:etcd 节点名称control-plane:主节点名称worker:工作节点名称
controlPlaneEndpoint(仅高可用安装):仅当安装多个主节点时,才需要在此为高可用集群提供外部负载均衡器信息;address/port 需缩进两个空格,address 填负载均衡器地址。
addons:可在 addons 字段下指定持久化存储插件(NFS 客户端、Ceph RBD、GlusterFS 等)。KubeSphere 默认会安装 OpenEBS 并为开发/测试环境配置 LocalPV;本多节点示例使用默认本地存储卷。生产环境建议用 Ceph/GlusterFS/CSI 或商业存储。
也可编辑配置文件启用多集群功能、选择要安装的可插拔组件。完整
config-sample.yaml示例见 KubeKey 仓库。
3. 使用配置文件创建集群
./kk create cluster -f config-sample.yaml
用了其它文件名时,把
config-sample.yaml改成你的文件名。整个安装可能需要 10~20 分钟,取决于机器和网络环境。
4. 验证安装
安装完成后会看到类似输出:
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd
...
#####################################################
之后可通过 <NodeIP>:30880 用默认帐户密码(admin / P@88w0rd)访问 KubeSphere Web 控制台。
备注:访问控制台可能需要按环境配置端口转发规则,并确保安全组放开了端口
30880。登录后请尽快修改默认密码。
启用 kubectl 自动补全
KubeKey 不会自动启用 kubectl 补全,按需打开(需先安装 bash-completion):
# 安装 bash-completion
apt-get install bash-completion
# 在 ~/.bashrc 中加载补全脚本
echo 'source <(kubectl completion bash)' >>~/.bashrc
# 把补全脚本放到 /etc/bash_completion.d
kubectl completion bash >/etc/bash_completion.d/kubectl
下一步:在 KubeSphere 集群上部署 CubeStudio,见 03-部署cube-studio。