日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
KongWeb圖形化管理工具Konga部署安裝

因?yàn)閗ong的社區(qū)版不提供dashboard,本文將介紹kong的第三方開(kāi)源的圖形化管理工具konga在Kubernetes集群上的部署安裝。 konga是一個(gè)非官方的第三方開(kāi)源的kong的圖形化管理工具,konga需要使用kong的Admin API,konga具有如下特性:

創(chuàng)新互聯(lián)主營(yíng)克拉瑪依區(qū)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開(kāi)發(fā),克拉瑪依區(qū)h5小程序開(kāi)發(fā)搭建,克拉瑪依區(qū)網(wǎng)站營(yíng)銷(xiāo)推廣歡迎克拉瑪依區(qū)等地區(qū)企業(yè)咨詢(xún)

  • 支持管理所有的Kong Admin API對(duì)象
  • 從遠(yuǎn)程數(shù)據(jù)源(數(shù)據(jù)庫(kù)、文件、api等)導(dǎo)入Consumer
  • 支持管理多個(gè)Kong節(jié)點(diǎn)
  • 通過(guò)快照方式備份、恢復(fù)和遷移Kong節(jié)點(diǎn)
  • 對(duì)Kong節(jié)點(diǎn)和API進(jìn)行健康檢查監(jiān)控

創(chuàng)建Kong Admin API的k8s service

前面在《使用helm在Kubernetes集群中部署Kong》一文中介紹了kong在k8s上的最基本安裝,當(dāng)將kong在k8s上用作ingress controller時(shí),推薦使用配置Ingress和CRDs的方式來(lái)配置kong, 而不推薦使用Kong的Admin API,kong官方的helm chart默認(rèn)安裝時(shí)也不會(huì)把kong的Admin API暴露出來(lái)。而由于konga需要使用Admin API,所以我們先修改之前部署ingress-kong的helm relase,在k8s中創(chuàng)建Kong Admin API的service。 kong-values.yml配置文件如下,注意konga容器內(nèi)部會(huì)訪問(wèn)kong Admin API,因此admin api的k8s service只需是ClusterIP類(lèi)型,在k8s集群內(nèi)部向konga提供服務(wù)即可:

 
 
 
 
  1. admin:
  2.   enabled: true # 開(kāi)啟Admin API
  3.   type: ClusterIP
  4.   annotations:
  5.     konghq.com/protocol: https
  6. ingressController:
  7.   ingressClass: kong
  8. postgresql:
  9.   enabled: false
  10. proxy:
  11.   type: ClusterIP
  12.   http:
  13.     hostPort: 80
  14.   tls:
  15.     hostPort: 443
  16. nodeSelector:
  17.   node-role.kubernetes.io/edge: ''
  18. affinity:
  19.   podAntiAffinity:
  20.       requiredDuringSchedulingIgnoredDuringExecution:
  21.       - labelSelector:
  22.           matchExpressions:
  23.           - key: app.kubernetes.io/instance
  24.             operator: In
  25.             values:
  26.             - kong
  27.           - key: app.kubernetes.io/name
  28.             operator: In
  29.             values:
  30.             - kong
  31.         topologyKey: kubernetes.io/hostname
  32. tolerations:
  33.     - key: node-role.kubernetes.io/master
  34.       operator: Exists
  35.       effect: NoSchedule
  36.     - key: node-role.kubernetes.io/master
  37.       operator: Exists
  38.       effect: PreferNoSchedule

更新ingress-kong的helm release:

 
 
 
 
  1. helm upgrade ingress-kong kong/kong -n ingress-kong -f kong-values.yml

上面對(duì)release ingress-kong的更新是在k8s中創(chuàng)建了service ingress-kong-kong-admin:

 
 
 
 
  1. get svc ingress-kong-kong-admin -n ingress-kong
  2. NAME                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
  3. ingress-kong-kong-admin   ClusterIP   10.105.100.17           8444/TCP   27m

部署konga

konga提供了自己的持久化機(jī)制來(lái)存儲(chǔ)它的用戶(hù)信息和配置信息,支持的數(shù)據(jù)庫(kù)包括MySQL、MongoDB、PostgresSQL,可通過(guò)DB_ADAPTER等環(huán)境變量指定。 這里使用的是外部的MySQL數(shù)據(jù)庫(kù)。下面分別在k8s上創(chuàng)建如下konga的deployment、service和ingress。

konga.deploy.yml:

 
 
 
 
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4.   labels:
  5.     app: konga
  6.   name: konga
  7.   namespace: ingress-kong
  8. spec:
  9.   replicas: 1
  10.   selector:
  11.     matchLabels:
  12.       app: konga
  13.   strategy:
  14.     rollingUpdate:
  15.       maxSurge: 1
  16.       maxUnavailable: 1
  17.     type: RollingUpdate
  18.   template:
  19.     metadata:
  20.       labels:
  21.         app: konga
  22.     spec:
  23.       initContainers:
  24.       - name: dbmigration
  25.         image: pantsel/konga
  26.         command:
  27.         - node
  28.         - /app/bin/konga.js
  29.         - prepare
  30.         - --adapter
  31.         - mysql
  32.         - --uri
  33.         - mysql://konga:konga147Q=@192.168.100.21:3306/kongadb
  34.       containers:
  35.       - name: konga
  36.         image: pantsel/konga
  37.         env:
  38.           - name: DB_ADAPTER
  39.             value: mysql
  40.           - name: DB_URI
  41.             value: mysql://konga:konga147Q=@192.168.100.21:3306/kongadb
  42.           - name: NODE_ENV
  43.             value: production
  44.           - name: NODE_TLS_REJECT_UNAUTHORIZED
  45.             value: "0"
  46.         ports:
  47.         - containerPort: 1337
  48.           protocol: TCP
  49.       restartPolicy: Always

上面的deployment部署文件中,使用初始化容器在pod啟動(dòng)前完成konga所需mysql數(shù)據(jù)庫(kù)schema的migration,第一次啟動(dòng)時(shí)在kongadb中創(chuàng)建了下面的數(shù)據(jù)庫(kù)表:

 
 
 
 
  1. +-------------------------------+
  2. | Tables_in_kongadb             |
  3. +-------------------------------+
  4. | konga_api_health_checks       |
  5. | konga_email_transports        |
  6. | konga_kong_nodes              |
  7. | konga_kong_services           |
  8. | konga_kong_snapshot_schedules |
  9. | konga_kong_snapshots          |
  10. | konga_kong_upstream_alerts    |
  11. | konga_netdata_connections     |
  12. | konga_passports               |
  13. | konga_settings                |
  14. | konga_users                   |
  15. +-------------------------------+

konga.svc.yml:

 
 
 
 
  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4.   name: konga
  5.   namespace: ingress-kong
  6. spec:
  7.   ports:
  8.     - name: http
  9.       protocol: TCP
  10.       port: 1337
  11.       targetPort: 1337
  12.   selector:
  13.     app: konga
  14.   type: ClusterIP

創(chuàng)建存放konga.cdxwcx.com ssl證書(shū)的secret:

 
 
 
 
  1. kubectl create secret tls example-com-tls-secret \
  2.   --cert=cert.pem \
  3.   --key=key.pem \
  4.   -n ingress-kong

konga.ingress.yml:

 
 
 
 
  1. apiVersion: networking.k8s.io/v1
  2. kind: Ingress
  3. metadata:
  4.   annotations:
  5.     kubernetes.io/ingress.class: kong
  6.     konghq.com/protocols: "https"
  7.   name: konga
  8.   namespace: ingress-kong
  9. spec:
  10.   rules:
  11.   - host: konga.cdxwcx.com
  12.     http:
  13.       paths:
  14.       - backend:
  15.           service:
  16.             name: konga
  17.             port:
  18.               number: 1337
  19.         path: /
  20.         pathType: Prefix
  21.   tls:
  22.   - hosts:
  23.     - konga.cdxwcx.com
  24.     secretName: example-com-tls-secret

konga的初始化配置

konga部署成功后,可以使用https://konga.cdxwcx.com訪問(wèn),第一次打開(kāi)這個(gè)頁(yè)面時(shí)需要按頁(yè)面的引導(dǎo)完成初始化配置。 首先創(chuàng)建一個(gè)konga管理用戶(hù),如下圖所示:

管理員用戶(hù)創(chuàng)建完成后,就可以登錄到konga中,之后出現(xiàn)創(chuàng)建konga到kong admin api連接的頁(yè)面,在連接創(chuàng)建頁(yè)面填入如下圖所示內(nèi)容:

連接創(chuàng)建完成后就可以進(jìn)入到konga的dashboard頁(yè)面,此時(shí)konga已經(jīng)和k8s中的kong連接上,并顯示相關(guān)信息了:

小結(jié)

到這里已經(jīng)完成konga在k8s集群中的部署,需要注意的是前面kong的部署時(shí)dbless模式的,也就是kong沒(méi)有使用數(shù)據(jù)(postgresql或apache cassandra),而且kong在這里用作k8s的ingress controller。 這種情況是不建議通過(guò)kong Admin API(或使用konga的web界面)來(lái)管理服務(wù)的,同時(shí)因?yàn)閗ong是dbless的,如果你使用konga Web界面對(duì)服務(wù)和kong的配置做相關(guān)的更新和刪除時(shí)也會(huì)報(bào)類(lèi)似can't do something when not use a database。 也就是說(shuō)如果kong是以dbless模式部署的,konga只能作為一個(gè)只讀的dashboard使用。最后,當(dāng)將kong在k8s上用作ingress controller時(shí),還是推薦使用配置Ingress和CRDs的方式來(lái)配置kong。


分享名稱(chēng):KongWeb圖形化管理工具Konga部署安裝
網(wǎng)站URL:http://www.dlmjj.cn/article/dpjgogi.html