使用Kuboard界面在k8s上部署SpringCloud項目


先安裝Ingress Controller

安裝Ingress Controller后,其他服務設置Ingress后就可以通過設置的域名進行訪問了,就不用通過代理的方式或者ip:port的方式進行訪問了

安裝Ingress Controller

教程地址:https://www.cnblogs.com/sanduzxcvbnm/p/13208837.html

安裝Ingress Controller后的效果



幾種不同的訪問方式

1.通過代理方式訪問



2.通過ip:port方式訪問


3.通過域名方式訪問
因為是在本機進行的測試,需要在本機hosts中添加解析

192.168.75.11 cloud-eureka.hkd.demo.kuboard.cn


改造項目使用的Dockerfile文件

詳細地址:https://www.cnblogs.com/sanduzxcvbnm/p/13209058.html

部署eureka

需要采用Statefulsets,不能采用Delpoyments

原因分析:
采用Delpoyments的話,設置三個副本,eureka界面上會顯示三個出來

但是會有問題,其他服務無法注冊進來

采用Statefulsets的話,設置三個副本,eureka界面上會顯示隨機顯示兩個出來,刷新頁面,會顯示的這倆會隨機變動,總之不會顯示三個,並且其他服務也能注冊進來

步驟選項


部署config


部署gateway




部署auth



eureka,config,gateway,auth效果

其他模塊

剩余的其他模塊配置差不多都一樣,都是在StatefulSet,鏡像tag是0.3,都開啟了Service,但是沒有開啟ingress

最終效果



思考:關於模塊要不要開啟訪問方式 Service?要不要開啟ingress?
1.Service是必須要開的
因為若關閉的話,有些服務是依賴於其他服務的,假若把config模塊的給關了,則gateway模塊會因為找不到config而無法啟動
關閉后的效果

開啟后的效果

2.ingress,這個根據情況而定,這個是給外網訪問用的,有些模塊需要進行外網訪問,比如eureka,有些不需要,那么只給有需要的開啟,沒需要的就不開啟

導出工作負載

地址:https://files.cnblogs.com/files/sanduzxcvbnm/kuboard_hkd_20200630093006.7z
文件內容:


---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: cloud-config
  annotations:
    k8s.kuboard.cn/workload: cloud-config
    k8s.kuboard.cn/displayName: 配置中心
    k8s.kuboard.cn/ingress: 'false'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-config
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: cloud
      k8s.kuboard.cn/name: cloud-config
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: cloud
        k8s.kuboard.cn/name: cloud-config
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-config:0.3'
          imagePullPolicy: Always
          name: hkd-config
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      nodeName: worker
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: cloud-config

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: cloud-config
  annotations:
    k8s.kuboard.cn/workload: cloud-config
    k8s.kuboard.cn/displayName: 配置中心
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-config
spec:
  selector:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-config
  type: NodePort
  ports:
    - port: 8888
      targetPort: 8888
      protocol: TCP
      name: msbf6b
      nodePort: 30886

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: cloud-eureka
  annotations:
    k8s.kuboard.cn/workload: cloud-eureka
    k8s.kuboard.cn/displayName: 服務注冊中心
    k8s.kuboard.cn/ingress: 'true'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-eureka
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: cloud
      k8s.kuboard.cn/name: cloud-eureka
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: cloud
        k8s.kuboard.cn/name: cloud-eureka
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-eureka:0.3'
          imagePullPolicy: Always
          name: eureka-server
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 3
  volumeClaimTemplates: []
  serviceName: cloud-eureka

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: cloud-eureka
  annotations:
    k8s.kuboard.cn/workload: cloud-eureka
    k8s.kuboard.cn/displayName: 服務注冊中心
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-eureka
spec:
  selector:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-eureka
  type: NodePort
  ports:
    - port: 8761
      targetPort: 8761
      protocol: TCP
      name: siwrzh
      nodePort: 30242

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  namespace: hkd
  name: cloud-eureka
  annotations:
    k8s.kuboard.cn/workload: cloud-eureka
    k8s.kuboard.cn/displayName: 服務注冊中心
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: cloud-eureka
spec:
  rules:
    - host: cloud-eureka.hkd.demo.kuboard.cn
      http:
        paths:
          - path: /
            backend:
              serviceName: cloud-eureka
              servicePort: siwrzh

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: gateway-gw2
  annotations:
    k8s.kuboard.cn/workload: gateway-gw2
    k8s.kuboard.cn/displayName: 網關中心
    k8s.kuboard.cn/ingress: 'true'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: gateway
    k8s.kuboard.cn/name: gateway-gw2
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: gateway
      k8s.kuboard.cn/name: gateway-gw2
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: gateway
        k8s.kuboard.cn/name: gateway-gw2
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-gateway:0.3'
          imagePullPolicy: Always
          name: hkd-gateway
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: gateway-gw2

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: gateway-gw2
  annotations:
    k8s.kuboard.cn/workload: gateway-gw2
    k8s.kuboard.cn/displayName: 網關中心
  labels:
    k8s.kuboard.cn/layer: gateway
    k8s.kuboard.cn/name: gateway-gw2
spec:
  selector:
    k8s.kuboard.cn/layer: gateway
    k8s.kuboard.cn/name: gateway-gw2
  type: NodePort
  ports:
    - port: 5000
      targetPort: 5000
      protocol: TCP
      name: m6ykbh
      nodePort: 31646

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  namespace: hkd
  name: gateway-gw2
  annotations:
    k8s.kuboard.cn/workload: gateway-gw2
    k8s.kuboard.cn/displayName: 網關中心
  labels:
    k8s.kuboard.cn/layer: gateway
    k8s.kuboard.cn/name: gateway-gw2
spec:
  rules:
    - host: gwateway-gw2.hkd.demo.kuboard.cn
      http:
        paths:
          - path: /
            backend:
              serviceName: gateway-gw2
              servicePort: m6ykbh

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: svc-auth
  annotations:
    k8s.kuboard.cn/workload: svc-auth
    k8s.kuboard.cn/displayName: 驗證中心
    k8s.kuboard.cn/ingress: 'false'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-auth
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: svc
      k8s.kuboard.cn/name: svc-auth
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: svc
        k8s.kuboard.cn/name: svc-auth
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-auth:0.3'
          imagePullPolicy: Always
          name: hkd-auth
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: svc-auth

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: svc-auth
  annotations:
    k8s.kuboard.cn/workload: svc-auth
    k8s.kuboard.cn/displayName: 驗證中心
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-auth
spec:
  selector:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-auth
  type: NodePort
  ports:
    - port: 8765
      targetPort: 8765
      protocol: TCP
      name: wjn5hh
      nodePort: 32443

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: svc-cash
  annotations:
    k8s.kuboard.cn/workload: svc-cash
    k8s.kuboard.cn/ingress: 'false'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-cash
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: svc
      k8s.kuboard.cn/name: svc-cash
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: svc
        k8s.kuboard.cn/name: svc-cash
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-cash:0.3'
          imagePullPolicy: Always
          name: hkd-cash
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: svc-cash

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: svc-cash
  annotations:
    k8s.kuboard.cn/workload: svc-cash
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-cash
spec:
  selector:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-cash
  type: NodePort
  ports:
    - port: 8766
      targetPort: 8766
      protocol: TCP
      name: kfcdez
      nodePort: 31091

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: svc-custom
  annotations:
    k8s.kuboard.cn/workload: svc-custom
    k8s.kuboard.cn/ingress: 'false'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-custom
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: svc
      k8s.kuboard.cn/name: svc-custom
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: svc
        k8s.kuboard.cn/name: svc-custom
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-custom:0.3'
          imagePullPolicy: Always
          name: hkd-custom
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: svc-custom

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: svc-custom
  annotations:
    k8s.kuboard.cn/workload: svc-custom
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-custom
spec:
  selector:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-custom
  type: NodePort
  ports:
    - port: 8764
      targetPort: 8764
      protocol: TCP
      name: e82zsm
      nodePort: 32733

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: svc-portal
  annotations:
    k8s.kuboard.cn/workload: svc-portal
    k8s.kuboard.cn/ingress: 'false'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-portal
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: svc
      k8s.kuboard.cn/name: svc-portal
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: svc
        k8s.kuboard.cn/name: svc-portal
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-portal:0.3'
          imagePullPolicy: Always
          name: hkd-portal
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: svc-portal

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: svc-portal
  annotations:
    k8s.kuboard.cn/workload: svc-portal
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-portal
spec:
  selector:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-portal
  type: NodePort
  ports:
    - port: 8767
      targetPort: 8767
      protocol: TCP
      name: sbwmf2
      nodePort: 31346

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: hkd
  name: svc-user
  annotations:
    k8s.kuboard.cn/workload: svc-user
    k8s.kuboard.cn/displayName: 用戶
    k8s.kuboard.cn/ingress: 'false'
    k8s.kuboard.cn/service: NodePort
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-user
spec:
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: svc
      k8s.kuboard.cn/name: svc-user
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        k8s.kuboard.cn/layer: svc
        k8s.kuboard.cn/name: svc-user
    spec:
      securityContext:
        seLinuxOptions: {}
      imagePullSecrets:
        - name: nexus
      restartPolicy: Always
      initContainers: []
      containers:
        - image: 'idocker.io/hkd-user:0.3'
          imagePullPolicy: Always
          name: hkd-user
          volumeMounts: []
          resources:
            limits:
            requests:
          env: []
          envFrom:
            - configMapRef:
                name: eureka-config
          lifecycle: {}
      volumes: []
      dnsPolicy: ClusterFirst
      dnsConfig: {}
      terminationGracePeriodSeconds: 30
  replicas: 1
  volumeClaimTemplates: []
  serviceName: svc-user

---
apiVersion: v1
kind: Service
metadata:
  namespace: hkd
  name: svc-user
  annotations:
    k8s.kuboard.cn/workload: svc-user
    k8s.kuboard.cn/displayName: 用戶
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-user
spec:
  selector:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: svc-user
  type: NodePort
  ports:
    - port: 8763
      targetPort: 8763
      protocol: TCP
      name: s5egas
      nodePort: 30083

---
metadata:
  name: eureka-config
  namespace: hkd
  managedFields:
    - manager: Mozilla
      operation: Update
      apiVersion: v1
      time: '2020-06-29T01:44:36Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:data':
          .: {}
          'f:eureka.client.serviceUrl.defaultZone': {}
          'f:eureka.instance.prefer-ip-address': {}
data:
  eureka.client.serviceUrl.defaultZone: >-
    http://cloud-eureka-0.cloud-eureka.hkd.svc.cluster.local:8761/eureka,http://cloud-eureka-1.cloud-eureka.hkd.svc.cluster.local:8761/eureka,http://cloud-eureka-2.cloud-eureka.hkd.svc.cluster.local:8761/eureka
  eureka.instance.prefer-ip-address: 'false'
kind: ConfigMap
apiVersion: v1

---
metadata:
  name: nexus
  namespace: hkd
  managedFields:
    - manager: Mozilla
      operation: Update
      apiVersion: v1
      time: '2020-06-28T07:45:21Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:data':
          .: {}
          'f:.dockerconfigjson': {}
        'f:type': {}
data:
  .dockerconfigjson: >-
    eyJhdXRocyI6eyJodHRwczovL2lkb2NrZXIuaW8iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoibmV3bm9kZTc4NTIiLCJhdXRoIjoiWVdSdGFXNDZibVYzYm05a1pUYzROVEk9In19fQ==
type: kubernetes.io/dockerconfigjson
kind: Secret
apiVersion: v1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM