夜航星
Lila
Lila
Published on 2025-04-28 / 13 Visits
0
0

KubeSphere部署pigx-ai

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安装

参考:https://www.kubesphere.io/zh/docs/v4.1/03-installation-and-upgrade/02-install-kubesphere/02-install-kubernetes-and-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

说明

如果访问 Docker Hub 受限,请在命令后添加如下配置,修改默认的镜像拉取地址。--set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks``--set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks

检查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.配置网络问题

参考:https://github.com/DaoCloud/public-image-mirror

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会启不起来!

所有安装完毕后如图:

image-20250423201210901

4、部署Harbor镜像仓库

建议用阿里云私人镜像仓库替换,就无需手动单独安装harbor;如果是harbor需要配置https访问,比较麻烦

image-20250428101833602

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仓库信息。

image-20250428175057224

2、部署pigx-mysql、pigx-redis

服务中搜索不到容器镜像问题,需要指定国内仓库前缀:docker.m.daocloud.io/library/

例如:image-20250428103809979

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起步



Comment