kubesphere v3.3.2
现在kubesphere出到3.4.x版本了,不稳定,用3.3.2就行了
docker是20版本,k8s是1.22.x或者1.23.x
官方文档:
https://kubesphere.io/zh/docs/v3.3/installing-on-linux/introduction/multioverview/
环境要求:
所有节点必须都能通过 SSH 访问。
所有节点时间同步。
所有节点都应使用 sudo/curl/openssl/tar。
第一部分: 配置3个节点的环境
(1) 配置SSH 免秘钥
编辑 /etc/hosts 文件,将规划的服务器 IP 和主机名添加到文件中。
8.146.210.1 master
47.94.144.9 worker1
8.134.189.1 worker2
scp /etc/hosts root@47.94.144.98:/etc/
白眉大户将 master节点作为部署节点,下面的操作仅需要在 master节点操作。
以 root 用户登陆系统,然后使用 ssh-keygen 命令生成一个新的 SSH 密钥对,命令完成后,SSH 公钥和私钥将存储在 /root/.ssh 目录中。
ssh-keygen -t ed25519
直接回车就可以。
接下来,输入以下命令将 SSH 公钥从 master 节点发送到其他节点。命令执行时输入 yes ,以接受服务器的 SSH 指纹,然后在出现提示时输入 root 用户的密码。
ssh-copy-id root@worker1
ssh-copy-id root@worker2
然后测试一下, ssh root@worker1 , 是不要输入密码了。 免密登录完成。
(2)配置服务器时区:(3个节点都要装)
timedatectl set-timezone Asia/Shanghai
检查:
timedatectl
(3)时间同步 安装 chrony 配置 (3个节点都要装)
yum install chrony
修改配置文件 /etc/chrony.conf,修改 ntp 服务器配置
vi /etc/chrony.conf
# 删除所有的 pool 配置
pool pool.ntp.org iburst
# 增加国内的 ntp 服务器,或是指定其他常用的时间服务器
server ntp.api.bz iburst
时间同步(集群)ntpdate chrony : 连接
(4)关闭系统防火墙
systemctl stop firewalld && systemctl disable firewalld
-----------------基础环境 准备完毕--------------------------
第2部分:安装 kubespere
1-安装系统依赖
在所有节点上,以 root 用户登陆系统,执行下面的命令为 Kubernetes 安装系统基本依赖包。
# 安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm
# 安装其他必备包
yum install tar
2安装部署 KubeSphere 和 Kubernetes
下载 KubeKey
白眉大叔 将 master-节点作为部署节点,把 KubeKey (下文简称 kk) 最新版(3.0.7)二进制文件下载到该服务器。具体 kk 版本号可以在 kk 发行页面查看。
下载最新版的 KubeKey
cd ~
mkdir kubekey
cd kubekey/
# 选择中文区下载(访问github受限时使用)
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -
# 也可以使用下面的命令指定具体版本
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
等几分钟就可以下载完成
查看 KubeKey 支持的 Kubernetes 版本列表
./kk version --show-supported-k8s
创建 Kubernetes 和 KubeSphere 部署配置文件
创建集群配置文件,本示例中,选择 KubeSphere v3.3.2 和 Kubernetes v1.25.5
,同时,指定配置文件名称为 kubesphere-v3.3.2.yaml,如果不指定,默认的文件名为 config-sample.yaml。
命令如下:
./kk create config -f kubesphere-v3.3.2.yaml --with-kubernetes v1.25.5 --with-kubesphere v3.3.2
命令执行成功后,在当前目录会生成文件名为 kubesphere-v3.3.2.yaml 的配置文件。
本示例采用 3 个节点作为 control-plane 节点同时复用为 worker 节点。
编辑配置文件 kubesphere-v3.3.2.yaml,修改 hosts 和 roleGroups 等信息,修改说明如下。
- hosts 指定节点的 IP、ssh 用户、ssh 密码、ss h密钥,示例演示了同时使用密码和密钥的配置方法。
- roleGroups 指定 ks-master-0、ks-master-1、ks-master-2 作为 etcd、control-plane、worker节点。
- internalLoadbalancer 启用内置的 HAProxy 负载均衡器。
修改后的示例如下:
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: ks-master-0, address: 192.168.9.91, internalAddress: 192.168.9.91, user: root, password: "P@88w0rd"}
- {name: ks-master-1, address: 192.168.9.92, internalAddress: 192.168.9.92, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
- {name: ks-master-2, address: 192.168.9.93, internalAddress: 192.168.9.93, user: root, privateKeyPath: "~/.ssh/id_ed25519"}
roleGroups:
etcd:
- ks-master-0
- ks-master-1
- ks-master-2
control-plane:
- ks-master-0
- ks-master-1
- ks-master-2
worker:
- ks-master-0
- ks-master-1
- ks-master-2
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.25.5
clusterName: cluster.local
autoRenewCerts: true
containerManager: containerd
etcd:
type: kubekey
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
privateRegistry: ""
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons: []
这个文件 的具体配置,我是这样的:
备注:
其他的官方 配置有问题:
错误: 连接
署 KubeSphere 和 Kubernetes
接下来我们执行下面的命令,使用上面生成的配置文件部署 KubeSphere 和 Kubernetes。
./kk create cluster -f kubesphere-v3.3.2.yaml
这里要注意, 如果 是3个 master 的话,需要指定一个 负载均衡 的节点, 这里我没有配置目前。先跑起来再说吧。
上面的命令执行后,首先 kk 会检查部署 Kubernetes 的依赖及其他详细要求。检查合格后,系统将提示您确认安装。输入 yes 并按 ENTER 继续部署。
部署完成需要大约10-30分钟左右,具体看网速和机器配置。
部署完成后,您应该会在终端上看到类似于下面的输出。提示部署完成的同时,输出中还会显示用户登陆 KubeSphere 的默认管理员用户和密码。
但是我这里 失败了, etcd 启动失败:解决方案
再次执行 安装命令:
./kk create cluster -f kubesphere-v3.3.2.yaml
./kk delete cluster -f xxx.yaml ,然后删除 kubekey 目录下的 pki 再重装试试
提示证书问题,就执行 上边的命令, 因为,做集群的时候,先把证书重新生成一下,里边有相关的hosts 信息。
之后继续安装, 发现卡主 在了
[InstallKubeBinariesModule] Synchronize kubernetes binaries
上边这个步骤需要等10-20分钟才可以, 也没输出什么日日志
后期的错误就是: 网络不通,可以参考
安装完成
18:50:06 CST success: [master]
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://172.16.0.240:30880
Account: admin
Password: P@88w0rd
NOTES:
1. After you log into the console, please check the
monitoring status of service components in
"Cluster Management". If any service is not
ready, please wait patiently until all components
are up and running.
2. Please change the default password after login.
#####################################################
https://kubesphere.io 2023-09-23 18:56:30
#####################################################
18:56:32 CST success: [master]
18:56:32 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.
Please check the result using the command:
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 Kubernetes 集群上部署 Nginx 服务器
KubeSphere 在阿里云 ECS 高可用实例 : 连接