apisix/kubernetes
2020-09-14 20:06:16 +08:00
..
deployment.yaml doc(k8s): removed unnecessary configurations. (#1891) 2020-07-31 12:16:29 +08:00
README.md fix: change the config file when deploying apisix in k8s #2182 (#2185) 2020-09-14 20:06:16 +08:00
service-monitor-for-prometheus.yaml doc: add etcd comment for k8s readme. add service-monitor yaml for prometh… (#1808) 2020-07-10 21:51:26 +08:00
service.yaml doc: add etcd comment for k8s readme. add service-monitor yaml for prometh… (#1808) 2020-07-10 21:51:26 +08:00

kubernetes

There are some yaml files for deploying apisix in Kubernetes.

Prerequisites

  • use etcd , if there is no etcd service, please install and set etcd address in ../conf/config.yaml

Usage

Create configmap for apache apisix

if you do not need to change any config, and use default config in ../conf/config.yaml

$ kubectl create configmap apisix-gw-config.yaml --from-file=../conf/config.yaml

when using etcd-operator

when using etcd-operator, you need to change apisix-gw-config-cm.yaml:

  • add CoreDNS IP into dns_resolver
dns_resolver:
  - 10.233.0.3      # default coreDNS cluster ip

  • change etcd host

Following {your-namespace} should be changed to your namespace, for example default.

Mention: must use Full Qualified Domain Name. Short name etcd-cluster-client is not work.

etcd:
  host:
    - "http://etcd-cluster-client.{your-namespace}.svc.cluster.local:2379"     # multiple etcd address

Create deployment for apache apisix

$ kubectl apply -f deployment.yaml

Create service for apache apisix

$ kubectl apply -f service.yaml

Scale apache apisix

$ kubectl scale deployment apisix-gw-deployment --replicas=4

Check running status

$ kubectl get cm | grep -i apisix
apisix-gw-config.yaml                             1      1d

$ kubectl get pod | grep -i apisix
apisix-gw-deployment-68df7c7578-5pvxb   1/1     Running   0          1d
apisix-gw-deployment-68df7c7578-kn89l   1/1     Running   0          1d
apisix-gw-deployment-68df7c7578-i830r   1/1     Running   0          1d
apisix-gw-deployment-68df7c7578-32ow1   1/1     Running   0          1d

$ kubectl get svc | grep -i apisix
apisix-gw-svc            LoadBalancer   172.19.33.28    10.253.0.11   80:31141/TCP,443:30931/TCP                  1d

Clean up (dangerous)

kubectl delete -f .