apisix/kubernetes
2021-05-25 15:45:43 -04:00
..
deployment.yaml feat: chaos test on route could still works when etcd is down (#3404) 2021-01-29 19:22:43 +08:00
README.md docs: add the helm chart link in the k8s deployment apisix doc (#4303) 2021-05-25 15:45:43 -04:00
service-monitor-for-prometheus.yaml feat(CI): add a GitHub Action to lint the YAML files (#3044) 2020-12-18 08:29:17 +08:00
service.yaml ci: address yamllint warnings (#3422) 2021-01-26 18:20:39 +08:00

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 .