自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

[[409019]]

  • 支持管理所有的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.  
  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 

上面對(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   <none>        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.example.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.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訪問(wèn),第一次打開(kāi)這個(gè)頁(yè)面時(shí)需要按頁(yè)面的引導(dǎo)完成初始化配置。 首先創(chuàng)建一個(gè)konga管理用戶(hù),如下圖所示:

 

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

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

 

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

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

 

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

小結(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。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2023-03-05 16:23:15

MySQL工具

2010-05-25 08:56:41

ubuntu Grub

2010-10-12 09:19:29

Navicat

2019-11-27 14:00:32

MySQLphpMyAdmin電腦

2009-03-05 08:57:48

phpMyAdminMySQL管理字符集

2019-07-21 20:08:50

工具代碼開(kāi)發(fā)

2020-07-16 14:20:12

Docker管理工具Linux

2010-06-13 12:53:12

Ubuntu Grub

2014-05-22 10:51:17

Linux文件管理工具

2021-02-03 07:16:49

DevOps開(kāi)發(fā)工具

2009-04-24 21:13:45

服務(wù)器虛擬化Vmware

2021-06-23 15:52:17

Docker圖形工具

2013-07-17 09:54:17

2013-07-15 15:00:26

項(xiàng)目管理工具

2012-09-28 10:19:32

IBMdw

2010-05-13 17:46:51

IIS服務(wù)器

2020-07-21 14:20:09

MySQL數(shù)據(jù)庫(kù)工具

2020-07-27 09:59:25

Kafka可視化CMAK

2011-08-12 10:38:09

MongoDB

2019-10-14 16:25:54

MySQLSQL數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)