在K8s中创建Kuboard

131 阅读2分钟

使用的yaml文件

# kuboard.yaml
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: kuboard-data
  namespace: kuboard
spec:
  storageClassName: csi-rbd-sc
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
  name: kuboard
  namespace: kuboard
spec:
  selector:
    app: kuboard
  type: ClusterIP
  ports:
  - name: web
    protocol: TCP
    port: 80
    targetPort: 80
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
    name: kuboard
    namespace: kuboard
    labels:
      app: kuboard
spec:
    replicas: 1
    selector:
      matchLabels:
        app: kuboard
    template:
      metadata:
        labels:
          app: kuboard
      spec:
        containers:
        - name: kuboard
          image: eipwork/kuboard:v3
          ports:
          - containerPort: 80
          volumeMounts:
          - name: kuboard-data
            mountPath: /data
        volumes:
        - name: kuboard-data
          persistentVolumeClaim:
            claimName: kuboard-data

创建名称空间

kubectl create ns kuboard

应用yaml文件

kubectl apply -f kuboard.yaml

查看Pod

[root@node1 kuboard]# kubectl get pods -n kuboard
NAME                               READY   STATUS    RESTARTS      AGE
kuboard-0                          1/1     Running   0             2m48s
metrics-scraper-57444654f4-c9ksr   1/1     Running   4 (32h ago)   14d

查看service

[root@node1 kuboard]# kubectl get service
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE
csi-metrics-rbdplugin       ClusterIP   10.96.136.32   <none>        8080/TCP            2d10h
csi-rbdplugin-provisioner   ClusterIP   10.96.74.200   <none>        8080/TCP            2d10h
kubernetes                  ClusterIP   10.96.0.1      <none>        443/TCP             15d
loki                        ClusterIP   10.96.9.178    <none>        3100/TCP,9095/TCP   14d
loki-memberlist             ClusterIP   None           <none>        7946/TCP            14d

使用Istio暴露服务

创建Gateway

# kuboard-gateway.yaml
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: kuboard-gateway
  namespace: istio-system
spec:
  selector:
    app: istio-ingressgateway
  servers:
  - port:
     number: 80
     name: http
     protocol: HTTP
    hosts:
    - "kuboard.myk8s.cn"

应用yaml文件

[root@node1 kuboard]# kubectl apply -f kuboard-gateway.yaml 
gateway.networking.istio.io/kuboard-gateway created

创建VirtualService

#  kuboard-virtualservice.yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: kuboard-virtualservice
  namespace: kuboard
spec:
  hosts:
  - "kuboard.myk8s.cn"
  gateways:
  - istio-system/kuboard-gateway
  http:
  - match:
     - uri:
         prefix: /
    route:
    - destination:
        host: kuboard
        port:
          number: 80

应用yaml文件

[root@node1 kuboard]# kubectl apply -f kuboard-virtualservice.yaml 
virtualservice.networking.istio.io/kuboard-virtualservice created

访问web界面

查看istio ingressgateway的external-ip

[root@node1 jumpserver]# kubectl get service -n istio-system
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP                   PORT(S)                                                                                      AGE
grafana                ClusterIP      10.96.234.93    <none>                        3000/TCP                                                                                     13d
istio-egressgateway    ClusterIP      10.96.24.219    <none>                        80/TCP,443/TCP                                                                               14d
istio-ingressgateway   LoadBalancer   10.96.174.147   192.168.0.111,192.168.0.222   15021:31848/TCP,80:31657/TCP,20001:31775/TCP,443:30425/TCP,31400:31780/TCP,15443:30671/TCP   14d
istiod                 ClusterIP      10.96.49.69     <none>                        15010/TCP,15012/TCP,443/TCP,15014/TCP                                                        14d
jaeger-collector       ClusterIP      10.96.63.79     <none>                        14268/TCP,14250/TCP,9411/TCP,4317/TCP,4318/TCP                                               13d
kiali                  ClusterIP      10.96.202.30    <none>                        20001/TCP,9090/TCP                                                                           13d
loki-headless          ClusterIP      None            <none>                        3100/TCP                                                                                     13d
prometheus             ClusterIP      10.96.109.177   <none>                        9090/TCP                                                                                     13d
tracing                ClusterIP      10.96.141.120   <none>                        80/TCP,16685/TCP                                                                             13d
zipkin                 ClusterIP      10.96.225.164   <none>                        9411/TCP                                                                                     13d

在需要访问jumpserver服务的主机上修改hosts,将kuboard.myk8s.cn解析为external-ip地址,这里解析为192.168.0.111

image.png

浏览器输入 kuboard.myk8s.cn

  • 默认用户名:admin
  • 默认密码:Kuboard123

image.png

添加集群

# 查看~/.kube/config文件内容,然后将内容输入页面中,点击确定
cat  ~/.kube/config

image.png

成功后即可查看集群信息了

image.png