tree: 3b7a60898514b114b55caeec0765c621268f0ffb [path history] [tgz]
  1. deployment.yaml
  2. README.md
  3. service-monitor-for-prometheus.yaml
  4. service.yaml
kubernetes/README.md

Kubernetes

There are some yaml files for deploying apisix in Kubernetes.

Note: You can also install Apache APISIX in Kubernetes by Helm Chart.

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 .