成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kong Web圖形化管理工具Konga部署安裝

開發 開發工具
本文將介紹kong的第三方開源的圖形化管理工具konga在Kubernetes集群上的部署安裝。 konga是一個非官方的第三方開源的kong的圖形化管理工具。

因為kong的社區版不提供dashboard,本文將介紹kong的第三方開源的圖形化管理工具konga在Kubernetes集群上的部署安裝。 konga是一個非官方的第三方開源的kong的圖形化管理工具,konga需要使用kong的Admin API,konga具有如下特性:

[[409019]]

  • 支持管理所有的Kong Admin API對象
  • 從遠程數據源(數據庫、文件、api等)導入Consumer
  • 支持管理多個Kong節點
  • 通過快照方式備份、恢復和遷移Kong節點
  • 對Kong節點和API進行健康檢查監控

創建Kong Admin API的k8s service

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

 

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

更新ingress-kong的helm release:

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

上面對release ingress-kong的更新是在k8s中創建了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   <none>        8444/TCP   27m 

部署konga

konga提供了自己的持久化機制來存儲它的用戶信息和配置信息,支持的數據庫包括MySQL、MongoDB、PostgresSQL,可通過DB_ADAPTER等環境變量指定。 這里使用的是外部的MySQL數據庫。下面分別在k8s上創建如下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啟動前完成konga所需mysql數據庫schema的migration,第一次啟動時在kongadb中創建了下面的數據庫表:

 

  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 

創建存放konga.example.com ssl證書的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.example.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.example.com 
  24.     secretName: example-com-tls-secret 

konga的初始化配置

konga部署成功后,可以使用https://konga.example.com訪問,第一次打開這個頁面時需要按頁面的引導完成初始化配置。 首先創建一個konga管理用戶,如下圖所示:

 

Kong Web圖形化管理工具Konga部署安裝

管理員用戶創建完成后,就可以登錄到konga中,之后出現創建konga到kong admin api連接的頁面,在連接創建頁面填入如下圖所示內容:

 

Kong Web圖形化管理工具Konga部署安裝

連接創建完成后就可以進入到konga的dashboard頁面,此時konga已經和k8s中的kong連接上,并顯示相關信息了:

 

Kong Web圖形化管理工具Konga部署安裝

小結

到這里已經完成konga在k8s集群中的部署,需要注意的是前面kong的部署時dbless模式的,也就是kong沒有使用數據(postgresql或apache cassandra),而且kong在這里用作k8s的ingress controller。 這種情況是不建議通過kong Admin API(或使用konga的web界面)來管理服務的,同時因為kong是dbless的,如果你使用konga Web界面對服務和kong的配置做相關的更新和刪除時也會報類似can't do something when not use a database。 也就是說如果kong是以dbless模式部署的,konga只能作為一個只讀的dashboard使用。最后,當將kong在k8s上用作ingress controller時,還是推薦使用配置Ingress和CRDs的方式來配置kong。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2023-03-05 16:23:15

MySQL工具

2010-05-25 08:56:41

ubuntu Grub

2019-11-27 14:00:32

MySQLphpMyAdmin電腦

2010-10-12 09:19:29

Navicat

2019-07-21 20:08:50

工具代碼開發

2009-03-05 08:57:48

phpMyAdminMySQL管理字符集

2010-06-13 12:53:12

Ubuntu Grub

2020-07-16 14:20:12

Docker管理工具Linux

2014-05-22 10:51:17

Linux文件管理工具

2021-02-03 07:16:49

DevOps開發工具

2009-04-24 21:13:45

服務器虛擬化Vmware

2013-07-15 15:00:26

項目管理工具

2013-07-17 09:54:17

2021-06-23 15:52:17

Docker圖形工具

2012-09-28 10:19:32

IBMdw

2010-05-13 17:46:51

IIS服務器

2020-07-21 14:20:09

MySQL數據庫工具

2020-07-27 09:59:25

Kafka可視化CMAK

2011-08-12 10:38:09

MongoDB

2019-10-14 16:25:54

MySQLSQL數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美日本在线 | 久久精品久久精品 | 91九色在线观看 | 中文字幕男人的天堂 | 国内精品久久影院 | 中文字幕在线观看一区二区 | 在线看免费的a | 天天操夜夜操免费视频 | 欧美精品成人一区二区三区四区 | 97国产一区二区 | 久久久九九九九 | 国产成人一区二区三区 | zzzwww在线看片免费 | 欧美福利精品 | 国产成人精品网站 | 一区二区免费在线视频 | 国产亚洲一区二区三区在线观看 | 亚洲精品中文字幕 | 日韩免费成人av | 亚洲一区三区在线观看 | 午夜视频在线 | 久久中文网 | 一区二区三区在线免费观看 | 精品无码久久久久久国产 | 免费黄色在线 | 啪啪免费| 欧美日韩亚洲国产综合 | 欧美va大片 | 福利片在线 | 午夜免费视频 | 欧美成人h版在线观看 | 日韩成人在线视频 | 色婷婷精品久久二区二区蜜臂av | 欧美九九 | 免费毛片www com cn| 久久久精品国产 | 久久久久久亚洲欧洲 | 91av小视频 | 欧美日韩在线不卡 | 91久久精品国产91久久 | 久久精品福利 |