1.说明
kong 使用 kubernetes集群外的Cassandra作为db
2.kong yaml
1.包含迁移脚本的yaml
apiVersion: v1
kind: Namespace
metadata: name: kong
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongclusterplugins.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .plugin
description: Name of the plugin
name: Plugin-Type
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
- JSONPath : .disabled
description: Indicates if the plugin is disabled
name: Disabled
priority: 1
type: boolean
- JSONPath : .config
description: Configuration of the plugin
name: Config
priority: 1
type: string
group: configuration.konghq.com
names:
kind: KongClusterPlugin
plural: kongclusterplugins
shortNames:
- kcp
scope: Cluster
validation:
openAPIV3Schema:
properties:
config:
type: object
configFrom:
properties:
secretKeyRef:
properties:
key:
type: string
name:
type: string
namespace:
type: string
required:
- name
- namespace
- key
type: object
type: object
disabled:
type: boolean
plugin:
type: string
protocols:
items:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
type: array
run_on:
enum:
- first
- second
- all
type: string
required:
- plugin
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongconsumers.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .username
description: Username of a Kong Consumer
name: Username
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
group: configuration.konghq.com
names:
kind: KongConsumer
plural: kongconsumers
shortNames:
- kc
scope: Namespaced
validation:
openAPIV3Schema:
properties:
credentials:
items:
type: string
type: array
custom_id:
type: string
username:
type: string
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongcredentials.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .type
description: Type of credential
name: Credential-type
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
- JSONPath : .consumerRef
description: Owner of the credential
name: Consumer-Ref
type: string
group: configuration.konghq.com
names:
kind: KongCredential
plural: kongcredentials
scope: Namespaced
validation:
openAPIV3Schema:
properties:
consumerRef:
type: string
type:
type: string
required:
- consumerRef
- type
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongingresses.configuration.konghq.com
spec: group: configuration.konghq.com
names:
kind: KongIngress
plural: kongingresses
shortNames:
- ki
scope: Namespaced
validation:
openAPIV3Schema:
properties:
proxy:
properties:
connect_timeout:
minimum: 0
type: integer
path:
pattern: ^/.*$
type: string
protocol:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
read_timeout:
minimum: 0
type: integer
retries:
minimum: 0
type: integer
write_timeout:
minimum: 0
type: integer
type: object
route:
properties:
headers:
additionalProperties:
items:
type: string
type: array
type: object
https_redirect_status_code:
type: integer
methods:
items:
type: string
type: array
path_handling:
enum:
- v0
- v1
type: string
preserve_host:
type: boolean
protocols:
items:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
type: array
regex_priority:
type: integer
strip_path:
type: boolean
upstream:
properties:
algorithm:
enum:
- round-robin
- consistent-hashing
- least-connections
type: string
hash_fallback:
type: string
hash_fallback_header:
type: string
hash_on:
type: string
hash_on_cookie:
type: string
hash_on_cookie_path:
type: string
hash_on_header:
type: string
healthchecks:
properties:
active:
properties:
concurrency:
minimum: 1
type: integer
healthy:
properties:
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
successes:
minimum: 0
type: integer
type: object
http_path:
pattern: ^/.*$
type: string
timeout:
minimum: 0
type: integer
unhealthy:
properties:
http_failures:
minimum: 0
type: integer
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
tcp_failures:
minimum: 0
type: integer
timeout:
minimum: 0
type: integer
type: object
type: object
passive:
properties:
healthy:
properties:
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
successes:
minimum: 0
type: integer
type: object
unhealthy:
properties:
http_failures:
minimum: 0
type: integer
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
tcp_failures:
minimum: 0
type: integer
timeout:
minimum: 0
type: integer
type: object
type: object
threshold:
type: integer
type: object
host_header:
type: string
slots:
minimum: 10
type: integer
type: object
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongplugins.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .plugin
description: Name of the plugin
name: Plugin-Type
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
- JSONPath : .disabled
description: Indicates if the plugin is disabled
name: Disabled
priority: 1
type: boolean
- JSONPath : .config
description: Configuration of the plugin
name: Config
priority: 1
type: string
group: configuration.konghq.com
names:
kind: KongPlugin
plural: kongplugins
shortNames:
- kp
scope: Namespaced
validation:
openAPIV3Schema:
properties:
config:
type: object
configFrom:
properties:
secretKeyRef:
properties:
key:
type: string
name:
type: string
required:
- name
- key
type: object
type: object
disabled:
type: boolean
plugin:
type: string
protocols:
items:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
type: array
run_on:
enum:
- first
- second
- all
type: string
required:
- plugin
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: tcpingresses.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .status.loadBalancer.ingress [ * ] .ip
description: Address of the load balancer
name: Address
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
group: configuration.konghq.com
names:
kind: TCPIngress
plural: tcpingresses
scope: Namespaced
subresources:
status: { }
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
rules:
items:
properties:
backend:
properties:
serviceName:
type: string
servicePort:
format: int32
type: integer
type: object
host:
type: string
port:
format: int32
type: integer
type: object
type: array
tls:
items:
properties:
hosts:
items:
type: string
type: array
secretName:
type: string
type: object
type: array
type: object
status:
type: object
version: v1beta1
status: acceptedNames:
kind: ""
plural: ""
conditions: [ ]
storedVersions: [ ]
--- apiVersion: v1
kind: ServiceAccount
metadata: name: kong-serviceaccount
namespace: kong
--- apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata: name: kong-ingress-clusterrole
rules: - apiGroups :
- ""
resources:
- endpoints
- nodes
- pods
- secrets
verbs:
- list
- watch
- apiGroups :
- ""
resources:
- nodes
verbs:
- get
- apiGroups :
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups :
- networking.k8s.io
- extensions
- networking.internal.knative.dev
resources:
- ingresses
verbs:
- get
- list
- watch
- apiGroups :
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups :
- networking.k8s.io
- extensions
- networking.internal.knative.dev
resources:
- ingresses/status
verbs:
- update
- apiGroups :
- configuration.konghq.com
resources:
- tcpingresses/status
verbs:
- update
- apiGroups :
- configuration.konghq.com
resources:
- kongplugins
- kongclusterplugins
- kongcredentials
- kongconsumers
- kongingresses
- tcpingresses
verbs:
- get
- list
- watch
- apiGroups :
- ""
resources:
- configmaps
verbs:
- create
- get
- update
--- apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata: name: kong-ingress-clusterrole-nisa-binding
roleRef: apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kong-ingress-clusterrole
subjects: - kind : ServiceAccount
name: kong-serviceaccount
namespace: kong
--- apiVersion: v1
kind: Service
metadata: annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol : tcp
service.beta.kubernetes.io/aws-load-balancer-type : nlb
name: kong-proxy
namespace: kong
spec: ports:
- name : proxy
port: 80
protocol: TCP
targetPort: 8000
nodePort: 30800
- name : proxy-ssl
port: 443
protocol: TCP
targetPort: 8443
nodePort: 30843
selector:
app: ingress-kong
type: NodePort
--- apiVersion: v1
kind: Service
metadata: name: kong-admin-ssl
namespace: kong
spec: ports:
- name : kong-admin-ssl
port: 8444
protocol: TCP
targetPort: 8444
nodePort: 30844
selector:
app: ingress-kong
type: NodePort
--- apiVersion: v1
kind: Service
metadata: name: kong-admin
namespace: kong
spec: ports:
- name : kong-admin
port: 8001
protocol: TCP
targetPort: 8001
nodePort: 30801
selector:
app: ingress-kong
type: NodePort
--- apiVersion: v1
kind: Service
metadata: name: kong-validation-webhook
namespace: kong
spec: ports:
- name : webhook
port: 443
protocol: TCP
targetPort: 8080
selector:
app: ingress-kong
--- apiVersion: apps/v1
kind: Deployment
metadata: labels:
app: ingress-kong
name: ingress-kong
namespace: kong
spec: replicas: 1
selector:
matchLabels:
app: ingress-kong
template:
metadata:
annotations:
kuma.io/gateway : enabled
prometheus.io/port : "8100"
prometheus.io/scrape : "true"
traffic.sidecar.istio.io/includeInboundPorts : ""
labels:
app: ingress-kong
spec:
containers:
- env :
- name : KONG_PROXY_LISTEN
value: 0 .0.0.0: 8000 , 0 .0.0.0: 8443 ssl http2
- name : KONG_ADMIN_LISTEN
value: 0 .0.0.0: 8001 , 0 .0.0.0: 8444 ssl
- name : KONG_STATUS_LISTEN
value: 0 .0.0.0: 8100
- name : KONG_DATABASE
value: cassandra
- name : KONG_CASSANDRA_CONTACT_POINTS
value: 192.168.3.40 , 192.168.3.41 , 192.168.3.42
- name : KONG_CASSANDRA_KEYSPACE
value: kong
- name : KONG_CASSANDRA_REPL_FACTOR
value: "2"
- name : KONG_NGINX_WORKER_PROCESSES
value: "1"
- name : KONG_ADMIN_ACCESS_LOG
value: /dev/stdout
- name : KONG_ADMIN_ERROR_LOG
value: /dev/stderr
- name : KONG_PROXY_ERROR_LOG
value: /dev/stderr
image: kong : 2.0
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- kong quit
livenessProbe:
failureThreshold: 3
httpGet:
path: /status
port: 8100
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: proxy
ports:
- containerPort : 8000
name: proxy
protocol: TCP
- containerPort : 8443
name: proxy-ssl
protocol: TCP
- containerPort : 8100
name: metrics
protocol: TCP
- containerPort : 8001
name: admin
protocol: TCP
- containerPort : 8444
name: admin-ssl
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /status
port: 8100
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
securityContext:
runAsUser: 1000
- env :
- name : CONTROLLER_KONG_ADMIN_URL
value: https : //127 .0.0.1: 8444
- name : CONTROLLER_KONG_ADMIN_TLS_SKIP_VERIFY
value: "true"
- name : CONTROLLER_PUBLISH_SERVICE
value: kong/kong-proxy
- name : POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name : POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller : 0.9.1
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: ingress-controller
ports:
- containerPort : 8080
name: webhook
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
initContainers:
- command :
- /bin/sh
- -c
- while true ; do kong migrations list; if [ [ 0 -eq $? ] ] ; then exit 0; fi;
sleep 2; done;
env:
- name : KONG_DATABASE
value: cassandra
- name : KONG_CASSANDRA_CONTACT_POINTS
value: 192.168.3.40 , 192.168.3.41 , 192.168.3.42
- name : KONG_CASSANDRA_KEYSPACE
value: kong
image: kong : 2.0
name: wait-for-migrations
serviceAccountName: kong-serviceaccount
--- apiVersion: batch/v1
kind: Job
metadata: name: kong-migrations
namespace: kong
spec: template:
metadata:
name: kong-migrations
spec:
containers:
- command :
- /bin/sh
- -c
- kong migrations bootstrap
env:
- name : KONG_DATABASE
value: cassandra
- name : KONG_CASSANDRA_CONTACT_POINTS
value: 192.168.3.40 , 192.168.3.41 , 192.168.3.42
- name : KONG_CASSANDRA_KEYSPACE
value: kong
image: kong : 2.0
name: kong-migrations
restartPolicy: OnFailure
|
2.不包含迁移脚本
apiVersion: v1
kind: Namespace
metadata: name: kong
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongclusterplugins.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .plugin
description: Name of the plugin
name: Plugin-Type
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
- JSONPath : .disabled
description: Indicates if the plugin is disabled
name: Disabled
priority: 1
type: boolean
- JSONPath : .config
description: Configuration of the plugin
name: Config
priority: 1
type: string
group: configuration.konghq.com
names:
kind: KongClusterPlugin
plural: kongclusterplugins
shortNames:
- kcp
scope: Cluster
validation:
openAPIV3Schema:
properties:
config:
type: object
configFrom:
properties:
secretKeyRef:
properties:
key:
type: string
name:
type: string
namespace:
type: string
required:
- name
- namespace
- key
type: object
type: object
disabled:
type: boolean
plugin:
type: string
protocols:
items:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
type: array
run_on:
enum:
- first
- second
- all
type: string
required:
- plugin
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongconsumers.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .username
description: Username of a Kong Consumer
name: Username
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
group: configuration.konghq.com
names:
kind: KongConsumer
plural: kongconsumers
shortNames:
- kc
scope: Namespaced
validation:
openAPIV3Schema:
properties:
credentials:
items:
type: string
type: array
custom_id:
type: string
username:
type: string
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongcredentials.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .type
description: Type of credential
name: Credential-type
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
- JSONPath : .consumerRef
description: Owner of the credential
name: Consumer-Ref
type: string
group: configuration.konghq.com
names:
kind: KongCredential
plural: kongcredentials
scope: Namespaced
validation:
openAPIV3Schema:
properties:
consumerRef:
type: string
type:
type: string
required:
- consumerRef
- type
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongingresses.configuration.konghq.com
spec: group: configuration.konghq.com
names:
kind: KongIngress
plural: kongingresses
shortNames:
- ki
scope: Namespaced
validation:
openAPIV3Schema:
properties:
proxy:
properties:
connect_timeout:
minimum: 0
type: integer
path:
pattern: ^/.*$
type: string
protocol:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
read_timeout:
minimum: 0
type: integer
retries:
minimum: 0
type: integer
write_timeout:
minimum: 0
type: integer
type: object
route:
properties:
headers:
additionalProperties:
items:
type: string
type: array
type: object
https_redirect_status_code:
type: integer
methods:
items:
type: string
type: array
path_handling:
enum:
- v0
- v1
type: string
preserve_host:
type: boolean
protocols:
items:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
type: array
regex_priority:
type: integer
strip_path:
type: boolean
upstream:
properties:
algorithm:
enum:
- round-robin
- consistent-hashing
- least-connections
type: string
hash_fallback:
type: string
hash_fallback_header:
type: string
hash_on:
type: string
hash_on_cookie:
type: string
hash_on_cookie_path:
type: string
hash_on_header:
type: string
healthchecks:
properties:
active:
properties:
concurrency:
minimum: 1
type: integer
healthy:
properties:
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
successes:
minimum: 0
type: integer
type: object
http_path:
pattern: ^/.*$
type: string
timeout:
minimum: 0
type: integer
unhealthy:
properties:
http_failures:
minimum: 0
type: integer
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
tcp_failures:
minimum: 0
type: integer
timeout:
minimum: 0
type: integer
type: object
type: object
passive:
properties:
healthy:
properties:
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
successes:
minimum: 0
type: integer
type: object
unhealthy:
properties:
http_failures:
minimum: 0
type: integer
http_statuses:
items:
type: integer
type: array
interval:
minimum: 0
type: integer
tcp_failures:
minimum: 0
type: integer
timeout:
minimum: 0
type: integer
type: object
type: object
threshold:
type: integer
type: object
host_header:
type: string
slots:
minimum: 10
type: integer
type: object
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: kongplugins.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .plugin
description: Name of the plugin
name: Plugin-Type
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
- JSONPath : .disabled
description: Indicates if the plugin is disabled
name: Disabled
priority: 1
type: boolean
- JSONPath : .config
description: Configuration of the plugin
name: Config
priority: 1
type: string
group: configuration.konghq.com
names:
kind: KongPlugin
plural: kongplugins
shortNames:
- kp
scope: Namespaced
validation:
openAPIV3Schema:
properties:
config:
type: object
configFrom:
properties:
secretKeyRef:
properties:
key:
type: string
name:
type: string
required:
- name
- key
type: object
type: object
disabled:
type: boolean
plugin:
type: string
protocols:
items:
enum:
- http
- https
- grpc
- grpcs
- tcp
- tls
type: string
type: array
run_on:
enum:
- first
- second
- all
type: string
required:
- plugin
version: v1
--- apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata: name: tcpingresses.configuration.konghq.com
spec: additionalPrinterColumns:
- JSONPath : .status.loadBalancer.ingress [ * ] .ip
description: Address of the load balancer
name: Address
type: string
- JSONPath : .metadata.creationTimestamp
description: Age
name: Age
type: date
group: configuration.konghq.com
names:
kind: TCPIngress
plural: tcpingresses
scope: Namespaced
subresources:
status: { }
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
rules:
items:
properties:
backend:
properties:
serviceName:
type: string
servicePort:
format: int32
type: integer
type: object
host:
type: string
port:
format: int32
type: integer
type: object
type: array
tls:
items:
properties:
hosts:
items:
type: string
type: array
secretName:
type: string
type: object
type: array
type: object
status:
type: object
version: v1beta1
status: acceptedNames:
kind: ""
plural: ""
conditions: [ ]
storedVersions: [ ]
--- apiVersion: v1
kind: ServiceAccount
metadata: name: kong-serviceaccount
namespace: kong
--- apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata: name: kong-ingress-clusterrole
rules: - apiGroups :
- ""
resources:
- endpoints
- nodes
- pods
- secrets
verbs:
- list
- watch
- apiGroups :
- ""
resources:
- nodes
verbs:
- get
- apiGroups :
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups :
- networking.k8s.io
- extensions
- networking.internal.knative.dev
resources:
- ingresses
verbs:
- get
- list
- watch
- apiGroups :
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups :
- networking.k8s.io
- extensions
- networking.internal.knative.dev
resources:
- ingresses/status
verbs:
- update
- apiGroups :
- configuration.konghq.com
resources:
- tcpingresses/status
verbs:
- update
- apiGroups :
- configuration.konghq.com
resources:
- kongplugins
- kongclusterplugins
- kongcredentials
- kongconsumers
- kongingresses
- tcpingresses
verbs:
- get
- list
- watch
- apiGroups :
- ""
resources:
- configmaps
verbs:
- create
- get
- update
--- apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata: name: kong-ingress-clusterrole-nisa-binding
roleRef: apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kong-ingress-clusterrole
subjects: - kind : ServiceAccount
name: kong-serviceaccount
namespace: kong
--- apiVersion: v1
kind: Service
metadata: annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol : tcp
service.beta.kubernetes.io/aws-load-balancer-type : nlb
name: kong-proxy
namespace: kong
spec: ports:
- name : proxy
port: 80
protocol: TCP
targetPort: 8000
nodePort: 30800
- name : proxy-ssl
port: 443
protocol: TCP
targetPort: 8443
nodePort: 30843
selector:
app: ingress-kong
type: NodePort
--- apiVersion: v1
kind: Service
metadata: name: kong-admin-ssl
namespace: kong
spec: ports:
- name : kong-admin-ssl
port: 8444
protocol: TCP
targetPort: 8444
nodePort: 30844
selector:
app: ingress-kong
type: NodePort
--- apiVersion: v1
kind: Service
metadata: name: kong-admin
namespace: kong
spec: ports:
- name : kong-admin
port: 8001
protocol: TCP
targetPort: 8001
nodePort: 30801
selector:
app: ingress-kong
type: NodePort
--- apiVersion: v1
kind: Service
metadata: name: kong-validation-webhook
namespace: kong
spec: ports:
- name : webhook
port: 443
protocol: TCP
targetPort: 8080
selector:
app: ingress-kong
--- apiVersion: apps/v1
kind: Deployment
metadata: labels:
app: ingress-kong
name: ingress-kong
namespace: kong
spec: replicas: 1
selector:
matchLabels:
app: ingress-kong
template:
metadata:
annotations:
kuma.io/gateway : enabled
prometheus.io/port : "8100"
prometheus.io/scrape : "true"
traffic.sidecar.istio.io/includeInboundPorts : ""
labels:
app: ingress-kong
spec:
containers:
- env :
- name : KONG_PROXY_LISTEN
value: 0 .0.0.0: 8000 , 0 .0.0.0: 8443 ssl http2
- name : KONG_ADMIN_LISTEN
value: 0 .0.0.0: 8001 , 0 .0.0.0: 8444 ssl
- name : KONG_STATUS_LISTEN
value: 0 .0.0.0: 8100
- name : KONG_DATABASE
value: cassandra
- name : KONG_CASSANDRA_CONTACT_POINTS
value: 192.168.3.40 , 192.168.3.41 , 192.168.3.42
- name : KONG_CASSANDRA_KEYSPACE
value: kong
- name : KONG_CASSANDRA_REPL_FACTOR
value: "2"
- name : KONG_NGINX_WORKER_PROCESSES
value: "1"
- name : KONG_ADMIN_ACCESS_LOG
value: /dev/stdout
- name : KONG_ADMIN_ERROR_LOG
value: /dev/stderr
- name : KONG_PROXY_ERROR_LOG
value: /dev/stderr
image: kong : 2.0
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- kong quit
livenessProbe:
failureThreshold: 3
httpGet:
path: /status
port: 8100
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: proxy
ports:
- containerPort : 8000
name: proxy
protocol: TCP
- containerPort : 8443
name: proxy-ssl
protocol: TCP
- containerPort : 8100
name: metrics
protocol: TCP
- containerPort : 8001
name: admin
protocol: TCP
- containerPort : 8444
name: admin-ssl
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /status
port: 8100
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
securityContext:
runAsUser: 1000
- env :
- name : CONTROLLER_KONG_ADMIN_URL
value: https : //127 .0.0.1: 8444
- name : CONTROLLER_KONG_ADMIN_TLS_SKIP_VERIFY
value: "true"
- name : CONTROLLER_PUBLISH_SERVICE
value: kong/kong-proxy
- name : POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name : POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller : 0.9.1
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: ingress-controller
ports:
- containerPort : 8080
name: webhook
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
serviceAccountName: kong-serviceaccount
|
3 konga yaml
apiVersion: v1
kind: Service
metadata: name: konga
namespace: kong
spec: ports:
- name : konga
port: 1337
targetPort: 1337
protocol: TCP
nodePort: 30837
selector:
app: konga
type: NodePort
--- apiVersion: apps/v1
kind: Deployment
metadata: name: konga
namespace: kong
spec: replicas: 2
selector:
matchLabels:
app: konga
template:
metadata:
labels:
name: konga
app: konga
spec:
containers:
- name : konga
image: pantsel/konga
env:
- name : DB_DATABASE
value: konga
- name : DB_USER
value: konga
- name : DB_PASSWORD
value: ""
- name : DB_PORT
value: "9306"
- name : DB_ADAPTER
value: mysql
- name : DB_HOST
value: 192.168.3.35
ports:
- name : konga
containerPort: 1337
protocol: TCP
|