Gitee同步:https://gitee.com/rickkkFang/kybj/blob/master/Kubernetes%E6%95%B4%E7%90%86.md#%E5%9B%9Bkubesphere%E9%83%A8%E7%BD%B2pigx-ai
1、kubernetes安装
详细参考官方文档教程:https://kubesphere.io/zh/docs/v4.1/02-quickstart/01-install-kubesphere/
准备集群服务器(这里是centos7一主两从):
192.168.56.10 master 8G 4核 192.168.56.11 node1 6G 4核 192.168.56.12 node2 6G 4核
基于kubekey懒人一键安装:https://github.com/kubesphere/kubekey
获取安装程序可执行文件
master节点使用脚本获取 KubeKey
如果无法访问 https://github.com, 请先执行 export KKZONE=cn.
curl -sfL https://get-kk.kubesphere.io | sh -
每个节点都要安装基础依赖
yum install socat conntrack -y
master节点执行下面命令快速创建一个Kubernetes集群,注意需要修改config模板
cat config-sample.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: sample spec: hosts: # 根据集群规模架构情况填写,我这里是 一主两从 架构 - {name: k8s-master, address: 192.168.56.10, internalAddress: 192.168.56.10, user: root, password: "000000"} - {name: k8s-node01, address: 192.168.56.11, internalAddress: 192.168.56.11, user: root, password: "000000"} - {name: k8s-node02, address: 192.168.56.12, internalAddress: 192.168.56.12, user: root, password: "000000"} roleGroups: # 填写对应的主机名称 etcd: - k8s-master control-plane: - k8s-master worker: - k8s-node01 - k8s-node02 controlPlaneEndpoint: ## Internal loadbalancer for apiservers # internalLoadbalancer: haproxy # 高可用架构 可以把这里打开, domain: lb.kubesphere.local address: "" port: 6443 kubernetes: version: v1.31.0 clusterName: cluster.local autoRenewCerts: true containerManager: docker 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: []
创建集群
./kk create cluster -f config-sample.yaml --with-kubernetes v1.31.0 -y
创建失败就多试几次,网络问题,我试了十几次才成功
kubectl get pod -A,可以查看Kubernetes集群安装成功!
配置kubectl命令在worker从节点也可以执行
#在k8s-master节点执行 scp ~/.kube/config root@k8s-node1:~/.kube/ scp ~/.kube/config root@k8s-node2:~/.kube/
2、KubeSphere安装
通过helm安装KubeSphere核心容器:
# 如果无法访问 charts.kubesphere.io, 可将 charts.kubesphere.io 替换为 charts.kubesphere.com.cn
helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.4.tgz --debug --wait
检查KubeSphere安装状态:kubectl get pods -n kubesphere-system
当 Pod 状态都为 Running 时,使用默认的账户和密码 (admin/P@88w0rd) 通过 <NodeIP>:30880 访问 KubeSphere Web 控制台。
3、安装KubeSphere必要拓展插件
1.安装OpenEBS做为默认StorageClass
kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml
查看StorageClass:kubectl get sc
设置 openebs-hostpath 为默认 StorageClass:
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
2.配置网络问题
2.1修改docker镜像源
每个节点都需要配置:vi /etc/docker/daemon.json
{
"experimental": true,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
2.2加速 Kubneretes
加速安装 kubeadm
kubeadm config images pull --image-repository k8s-gcr.m.daocloud.io
加速安装 kind
kind create cluster --name kind --image m.daocloud.io/docker.io/kindest/node:v1.22.1
加速 Containerd
参考 Containerd 官方文档: hosts.md
如果您使用 kubespray 安装 containerd, 可以配置
containerd_registries_mirrors
3.从拓展市场安装WhizardTelemetry 监控
注意服务器cpu,最少2核,否则WhizardTelemetry后台监控exporter pod会启不起来!
所有安装完毕后如图:
4、部署Harbor镜像仓库
建议用阿里云私人镜像仓库替换,就无需手动单独安装harbor;如果是harbor需要配置https访问,比较麻烦
1.安装docker compose
# 下载并安装(推荐1.29.2版本)
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证版本
docker-compose --version
2.安装Harbor
#翻墙下载
wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
tar -zxvf harbor-offline-installer-v2.5.0.tgz -C /opt/module/
cd /opt/module/harbor
3.配置https
todo
4.Kubesphere配置应用商店仓库
1、先在拓展市场里安装应用商店 2、点击安装完成后的应用商店进行chats仓库配置,以下是几个可用的仓库地址
参考: https://blog.csdn.net/Bruce1114/article/details/126034972 https://github.com/sir5kong/helm-charts-hub
charts.kubesphere.io/stable
charts.bitnami.com/bitnami
https://mirror.azure.cn/kubernetes/charts
mirror.kaiyuanshe.cn/kubernetes/charts
kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm-charts.itboon.top/bitnami
配置完成后即可在“项目-应用负载-应用”下通过从应用模版创建指定应用。
5、部署pigx-ai
1、KubeSphere配置私人镜像仓库,将pigx相关jar包通过docker build&docker push推送到私人镜像仓库
参考:https://kubesphere.io/zh/docs/v3.4/project-user-guide/configuration/image-registry/
需要配置保密字典,存储阿里云个人镜像仓库信息或者Harbor仓库信息。
2、部署pigx-mysql、pigx-redis
服务中搜索不到容器镜像问题,需要指定国内仓库前缀:docker.m.daocloud.io/library/
例如:
3、设置pigx-mysql-externel对外访问,通过NodePort来对外访问方便navicat导入数据库脚本
kind: Service
apiVersion: v1
metadata:
name: pigx-mysql-external
namespace: pigx-ai
creationTimestamp: '2025-04-27T18:52:35Z'
annotations:
kubesphere.io/creator: admin
spec:
ports:
- protocol: TCP
port: 3306
targetPort: 3306
nodePort: 30306
selector:
app: pigx-mysql
clusterIP: 10.233.17.17
clusterIPs:
- 10.233.17.17
type: NodePort
sessionAffinity: None
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
internalTrafficPolicy: Cluster
4、部署后端业务服务容器,maven差价发布docker镜像,启动顺序如下:
参考:https://pig4cloud.com/data/doc/pigx/production/pigx-prod-maven-docker.html
pigx-register pigx-auth pigx-gateway pigx-upms-biz pigx-knowledge ......
5、部署前端服务pigx-ui容器:
cd pigx-ui
# 安装前端依赖
npm install --registry=https://registry.npmmirror.com
# 构建结果,注意这里 build:docker
npm run build:docker
cd pigx-ui/docker
#打包成docker镜像
docker build -t pigx-ui:5.8.0 .
#推送到个人镜像仓库
docker login --username=用户名 registry.cn-beijing.aliyuncs.com
docker tag pigx-ui:5.8.0 registry.cn-beijing.aliyuncs.com/命名空间/pigx-ui:5.8.0
docker push registry.cn-beijing.aliyuncs.com/命名空间/pigx-ui:5.8.0
pigx-ui
踩坑
1.worker节点莫名假死NotReady:
cpu或者内存资源给少了,建议4核8G起步