This is an automated email from the ASF dual-hosted git repository.
juzhiyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git
The following commit(s) were added to refs/heads/master by this push:
new 5e844e44 docs: update installation guide (#1272)
5e844e44 is described below
commit 5e844e44b4f58458574f9e570b2244945ee92d3a
Author: Navendu Pottekkat <[email protected]>
AuthorDate: Sat Aug 27 07:22:32 2022 +0530
docs: update installation guide (#1272)
---
docs/en/latest/config.json | 12 ++---
docs/en/latest/deployments/aws.md | 77 ++++++++++++++++++++++--------
docs/en/latest/deployments/azure.md | 78 ++++++++++++++++++++++--------
docs/en/latest/deployments/gke.md | 75 +++++++++++++++++++++--------
docs/en/latest/deployments/k3s-rke.md | 44 ++++++++++-------
docs/en/latest/deployments/kind.md | 39 ++++++++-------
docs/en/latest/deployments/kubesphere.md | 72 ++++++++++++++++++++--------
docs/en/latest/deployments/minikube.md | 26 ++++++----
docs/en/latest/deployments/tke.md | 82 +++++++++++++++++++++++---------
9 files changed, 352 insertions(+), 153 deletions(-)
diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index 7725f017..bff5ed08 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -9,15 +9,15 @@
"type": "category",
"label": "Installation",
"items": [
- "deployments/ack",
+ "deployments/minikube",
+ "deployments/kind",
"deployments/aws",
- "deployments/azure",
+ "deployments/ack",
"deployments/gke",
- "deployments/kind",
+ "deployments/azure",
+ "deployments/tke",
"deployments/kubesphere",
- "deployments/k3s-rke",
- "deployments/minikube",
- "deployments/tke"
+ "deployments/k3s-rke"
]
},
{
diff --git a/docs/en/latest/deployments/aws.md
b/docs/en/latest/deployments/aws.md
index 8e160561..0c277798 100644
--- a/docs/en/latest/deployments/aws.md
+++ b/docs/en/latest/deployments/aws.md
@@ -1,7 +1,12 @@
---
-title: Install Ingress APISIX on Amazon EKS
+title: EKS (Amazon)
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - Amazon EKS
+description: Guide to install APISIX ingress controller on Amazon Elastic
Kubernetes Service (EKS).
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,17 +26,19 @@ title: Install Ingress APISIX on Amazon EKS
#
-->
-This document explains how to install Ingress APISIX on [Amazon
EKS](https://amazonaws-china.com/eks/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc&eks-blogs.sort-by=item.additionalFields.createdDate&eks-blogs.sort-order=desc).
+This guide explains how you can install APISIX ingress on [Amazon
EKS](https://aws.amazon.com/eks/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc&eks-blogs.sort-by=item.additionalFields.createdDate&eks-blogs.sort-order=desc).
## Prerequisites
-* Create an EKS Service on AWS.
-* Download the kube config for your EKS from [aws cli
interface](https://amazonaws-china.com/cli/).
+Before installing APISIX, you need to:
+
+* [Create an EKS
cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)
on AWS.
+* Enable kubectl to communicate with your cluster by adding the credentials to
your kube config file.
* Install [Helm](https://helm.sh/).
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -46,31 +53,59 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Five Service resources were created.
+:::note
+
+By default, APISIX ingress controller will watch the apiVersion of
`networking.k8s.io/v1`.
+
+If the target Kubernetes version is under `v1.19`, add the flag `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1`.
+
+Else, if your Kubernetes cluster version is under `v1.16`, set the flag `--set
ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`.
+
+:::
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+This will create the five resources mentioned below:
-The gateway service type is set to `LoadBalancer` (See [AWS Network
Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html)
for more details), so that clients can access Apache APISIX through a load
balancer. You can find the load balancer hostname by running:
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
+
+The gateway service type will be set to `LoadBalancer`. See [Network Load
Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html)
for more details on using it in AWS.
+
+You can find the load balancer IP address by running:
```shell
kubectl get service apisix-gateway --namespace ingress-apisix -o
jsonpath='{.status.loadBalancer.ingress[].hostname}'
```
-Now open your [EKS console](https://console.aws.amazon.com/eks/home), choosing
your cluster and clicking the Workloads tag, you'll see all pods of Apache
APISIX, etcd and apisix-ingress-controller are ready.
-
-Try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running status. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+Now, if you open your [EKS console](https://console.aws.amazon.com/eks/home),
select your cluster, and click the workloads tag, you will be able to see all
APISIX, etcd, and ingress controller pods.
-### Specify The Ingress Version
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
-apisix-ingress-controller will watch apiVersion of `networking.k8s.io/v1` by
default. If the target kubernetes version is under `v1.19`, add `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1` or
`--set ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`
if your kubernetes cluster is under `v1.16`
+## Next steps
### Enable SSL
-The ssl config is disabled by default, add `--set gateway.tls.enabled=true` to
enable tls support.
+SSL is disabled by default. You can enable it by adding the flag `--set
gateway.tls.enabled=true`.
+
+### Change default keys
+
+It is recommended to change the default keys for security:
+
+```shell
+--set ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF
+```
+
+:::note
-### Change default apikey
+The `ingress-controller.config.apisix.adminKey` and `admin.credentials.admin`
must be the same. It is better if these are not same as
`admin.credentials.viewer`.
-It's Recommended to change the default key by add `--set
ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF`,
`--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF`, `--set
admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF`, notice that
`ingress-controller.config.apisix.adminKey` and `admin.credentials.admin` must
be the same, and should better not same as `admin.credentials.viewer`.
+:::
diff --git a/docs/en/latest/deployments/azure.md
b/docs/en/latest/deployments/azure.md
index 121667d0..e9dc7c06 100644
--- a/docs/en/latest/deployments/azure.md
+++ b/docs/en/latest/deployments/azure.md
@@ -1,7 +1,12 @@
---
-title: Install Ingress APISIX on Azure AKS
+title: AKS (Azure)
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - Microsoft Azure
+description: Guide to install APISIX ingress controller on Azure Kubernetes
Service (AKS).
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,17 +26,24 @@ title: Install Ingress APISIX on Azure AKS
#
-->
-This document explains how to install Ingress APISIX on [Azure
AKS](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes#:~:text=Azure%20Kubernetes%20Service%20(AKS)%20makes,managed%20Kubernetes%20cluster%20in%20Azure.&text=The%20Kubernetes%20masters%20are%20managed,clusters%2C%20not%20for%20the%20masters.).
+This document explains how you can install APISIX ingress on [Azure
AKS](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes).
## Prerequisites
-* Create an Kubernetes Service on Azure.
-* Install [Azure
CLI](https://docs.microsoft.com/en-us/cli/azure/#:~:text=The%20Azure%20command%2Dline%20interface,with%20an%20emphasis%20on%20automation.)
and download the credentials by running `az aks get-credentials`.
+Setting up APISIX ingress on AKS requires the following:
+
+* [Create an AKS
cluster](https://docs.microsoft.com/en-us/azure/aks/learn/quick-kubernetes-deploy-portal?tabs=azure-cli).
+* Install [Azure
CLI](https://docs.microsoft.com/en-us/cli/azure/#:~:text=The%20Azure%20command%2Dline%20interface,with%20an%20emphasis%20on%20automation.)
and update your kube config file by running:
+
+ ```shell
+ az aks get-credentials
+ ```
+
* Install [Helm](https://helm.sh/).
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -46,29 +58,55 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Five Service resources were created.
+:::note
+
+By default, APISIX ingress controller will watch the apiVersion of
`networking.k8s.io/v1`.
+
+If the target Kubernetes version is under `v1.19`, add the flag `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1`.
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+Else, if your Kubernetes cluster version is under `v1.16`, set the flag `--set
ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`.
-The gateway service type is set to `LoadBalancer`, so that clients can access
Apache APISIX through a load balancer IP. You can find the load balancer IP by
running:
+:::
+
+This will create the five resources mentioned below:
+
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
+
+The gateway service type will be set to `LoadBalancer`. You can find the load
balancer IP address by running:
```shell
kubectl get service apisix-gateway --namespace ingress-apisix -o
jsonpath='{.status.loadBalancer.ingress[].ip}'
```
-Now try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running status. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
-### Specify The Ingress Version
-
-apisix-ingress-controller will watch apiVersion of `networking.k8s.io/v1` by
default. If the target kubernetes version is under `v1.19`, add `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1` or
`--set ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`
if your kubernetes cluster is under `v1.16`
+## Next steps
### Enable SSL
-The ssl config is disabled by default, add `--set gateway.tls.enabled=true` to
enable tls support.
+SSL is disabled by default. You can enable it by adding the flag `--set
gateway.tls.enabled=true`.
+
+### Change default keys
+
+It is recommended to change the default keys for security:
+
+```shell
+--set ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF
+```
+
+:::note
-### Change default apikey
+The `ingress-controller.config.apisix.adminKey` and `admin.credentials.admin`
must be the same. It is better if these are not same as
`admin.credentials.viewer`.
-It's Recommended to change the default key by add `--set
ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF`,
`--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF`, `--set
admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF`, notice that
`ingress-controller.config.apisix.adminKey` and `admin.credentials.admin` must
be the same, and should better not same as `admin.credentials.viewer`.
+:::
diff --git a/docs/en/latest/deployments/gke.md
b/docs/en/latest/deployments/gke.md
index 9d15a860..f63d17dd 100644
--- a/docs/en/latest/deployments/gke.md
+++ b/docs/en/latest/deployments/gke.md
@@ -1,7 +1,12 @@
---
-title: Install Ingress APISIX on Google Cloud GKE
+title: GKE (Google)
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - Google Cloud Platform
+description: Guide to install APISIX ingress controller on Google Kubernetes
Engine (GKE).
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,17 +26,19 @@ title: Install Ingress APISIX on Google Cloud GKE
#
-->
-This document explains how to install Ingress APISIX on [Google Cloud
GKE](https://cloud.google.com/kubernetes-engine).
+This guide explains how you can install APISIX ingress on [Google Kubernetes
Engine (GKE)](https://cloud.google.com/kubernetes-engine).
## Prerequisites
-* Create an Kubernetes Service on GKE.
-* Install [Google Cloud SDK](https://cloud.google.com/sdk) and get the
credentials or you can just use the [Cloud
Shell](https://cloud.google.com/shell).
+Setting up APISIX ingress on GKE requires the following:
+
+* [Create a GKE
cluster](https://cloud.google.com/kubernetes-engine/docs/deploy-app-cluster#create_cluster)
on Google Cloud.
+* Install [Google Cloud SDK](https://cloud.google.com/sdk) and update the
credentials in your kube config file or use the
[shell](https://cloud.google.com/shell).
* Install [Helm](https://helm.sh/).
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -46,29 +53,57 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Five Service resources were created.
+:::note
+
+By default, APISIX ingress controller will watch the apiVersion of
`networking.k8s.io/v1`.
+
+If the target Kubernetes version is under `v1.19`, add the flag `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1`.
+
+Else, if your Kubernetes cluster version is under `v1.16`, set the flag `--set
ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`.
+
+:::
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+This will create the five resources mentioned below:
-The gateway service type is set to `LoadBalancer`, so that clients can access
Apache APISIX through the [GKE Load
Balancer](https://cloud.google.com/kubernetes-engine/docs/concepts/service#services_of_type_loadbalancer)
. You can find the load balancer IP by running:
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
+
+The gateway service type will be set to `LoadBalancer`. Clients can access
Apache APISIX through the [GKE Load
Balancer](https://cloud.google.com/kubernetes-engine/docs/concepts/service#services_of_type_loadbalancer).
+
+You can find the load balancer IP address by running:
```shell
kubectl get service apisix-gateway --namespace ingress-apisix -o
jsonpath='{.status.loadBalancer.ingress[].ip}'
```
-Now try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running status. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
-
-### Specify The Ingress Version
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
-apisix-ingress-controller will watch apiVersion of `networking.k8s.io/v1` by
default. If the target kubernetes version is under `v1.19`, add `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1` or
`--set ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`
if your kubernetes cluster is under `v1.16`
+## Next steps
### Enable SSL
-The ssl config is disabled by default, add `--set gateway.tls.enabled=true` to
enable tls support.
+SSL is disabled by default. You can enable it by adding the flag `--set
gateway.tls.enabled=true`.
+
+### Change default keys
+
+It is recommended to change the default keys for security:
+
+```shell
+--set ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF
+```
+
+:::note
-### Change default apikey
+The `ingress-controller.config.apisix.adminKey` and `admin.credentials.admin`
must be the same. It is better if these are not same as
`admin.credentials.viewer`.
-It's Recommended to change the default key by add `--set
ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF`,
`--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF`, `--set
admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF`, notice that
`ingress-controller.config.apisix.adminKey` and `admin.credentials.admin` must
be the same, and should better not same as `admin.credentials.viewer`.
+:::
diff --git a/docs/en/latest/deployments/k3s-rke.md
b/docs/en/latest/deployments/k3s-rke.md
index bcf1a824..a3a3db94 100644
--- a/docs/en/latest/deployments/k3s-rke.md
+++ b/docs/en/latest/deployments/k3s-rke.md
@@ -1,7 +1,13 @@
---
-title: Install Ingress APISIX on K3S and Rancher RKE
+title: K3s and RKE (Rancher)
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - K3s
+ - Rancher RKE
+description: Guide to install APISIX ingress controller on K3s and Rancher
Kubernetes Engine(RKE).
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,19 +27,22 @@ title: Install Ingress APISIX on K3S and Rancher RKE
#
-->
-This document explains how to install Ingress APISIX on [k3S](https://k3s.io/)
and [Rancher RKE](https://rancher.com/products/rke/).
+This document explains how you can install APISIX ingress on
[k3S](https://k3s.io/) and [Rancher RKE](https://rancher.com/products/rke/).
+
+:::tip
+
+K3s is built for IoT and edge computing applications. Apache APISIX also
supports an MQTT Plugin and runs well on ARM processors. APISIX ingress is
therefore a good choice to handle North-South traffic in K3s.
-K3S is a certified Kubernetes distribution built for IoT and Edge computing,
whilst [Apache APISIX](https://apisix.apache.org) is also good at IoT (See
[MQTT
plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/plugins/mqtt-proxy.md))
and runs well on ARM architecture.
-It's a good choice to use Ingress APISIX as the north-south API gateway in K3S.
+:::
## Prerequisites
* Install [K3S](https://rancher.com/docs/k3s/latest/en/installation/) or
[Rancher RKE](https://rancher.com/docs/rke/latest/en/installation/).
* Install [Helm](https://helm.sh/).
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -49,16 +58,19 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-*If you are using K3S, the default kubeconfig file is in /etc/rancher/k3s and
root permission may required.*
+:::info IMPORTANT
+
+If you are using K3s, the default kube config file is located in
`/etc/rancher/k3s/` and you make require root permission.
+
+:::
-Five Service resources were created.
+This will create the five resources mentioned below:
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
-The gateway service type is set to `NodePort`, so that clients can access
Apache APISIX through the Node IPs and the assigned port.
-If you are using K3S and you want to expose a `LoadBalancer` service, try to
use [Klipper](https://github.com/k3s-io/klipper-lb).
+The gateway service type is set to `NodePort`. Clients can access APISIX
through the Node IPs and the assigned port. To use a service of type
`LoadBalancer` with K3s, use a bare-metal load balancer implementation like
[Klipper](https://github.com/k3s-io/klipper-lb).
-Now try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running status. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
diff --git a/docs/en/latest/deployments/kind.md
b/docs/en/latest/deployments/kind.md
index 7994a23b..9249466c 100644
--- a/docs/en/latest/deployments/kind.md
+++ b/docs/en/latest/deployments/kind.md
@@ -1,7 +1,12 @@
---
-title: Install Ingress APISIX on Kind
+title: kind
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - kind
+description: Guide to install APISIX ingress controller on kind.
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,7 +26,7 @@ title: Install Ingress APISIX on Kind
#
-->
-This document explains how to install Ingress APISIX on
[kind](https://kind.sigs.k8s.io/).
+This document explains how you can install APISIX ingress locally on
[kind](https://kind.sigs.k8s.io/).
## Prerequisites
@@ -29,23 +34,25 @@ This document explains how to install Ingress APISIX on
[kind](https://kind.sigs
* Install [Helm](https://helm.sh/).
* Install [kubectl](https://kubernetes.io/docs/tasks/tools/).
-If you encounter some strange problems, please consider whether it is a
version compatibility issue.
+:::tip
+
+If you encounter issues, check the version you are using. This document uses
kind v0.12.0, Helm v3.8.1, and kubectl v1.23.5.
-The versions of kind(==v0.12.0), kubectl(==v1.23.5) and helm(==v3.8.1) used in
this document are confirmed feasible.
+:::
-## Create Cluster
+## Create a kind cluster
-The quickest way to get a taste is to run command as follows and then go to
the next section.
+Ensure you have Docker running and start the kind cluster:
```shell
kind create cluster
```
-You can click this
[link](https://kind.sigs.k8s.io/docs/user/ingress/#create-cluster) for more
information.
+See [Ingress](https://kind.sigs.k8s.io/docs/user/ingress/#create-cluster) to
learn more about setting up ingress on a kind cluster.
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -60,11 +67,11 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Five Service resources were created.
+This will create the five resources mentioned below:
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
-Now try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running of Ingress APISIX. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
diff --git a/docs/en/latest/deployments/kubesphere.md
b/docs/en/latest/deployments/kubesphere.md
index 262bcf12..1029780f 100644
--- a/docs/en/latest/deployments/kubesphere.md
+++ b/docs/en/latest/deployments/kubesphere.md
@@ -1,7 +1,12 @@
---
-title: Install Ingress APISIX on KubeSphere
+title: KubeSphere
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - KubeSphere
+description: Guide to install APISIX ingress controller on KubeSphere
Container Platform.
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,18 +26,18 @@ title: Install Ingress APISIX on KubeSphere
#
-->
-This document explains how to install Ingress APISIX on
[KubeSphere](https://kubesphere.io/).
-
-KubeSphere is a distributed operating system managing cloud native
applications with Kubernetes as its kernel, and provides plug-and-play
architecture for the seamless integration of third-party applications to boost
its ecosystem.
+This guide explains how you can install APISIX ingress on
[KubeSphere](https://kubesphere.io/) distributed operating system.
## Prerequisites
-* Install [KubeSphere](https://kubesphere.io/docs/quick-start/), you can
choose [All-in-one Installation on
Linux](https://kubesphere.io/docs/quick-start/all-in-one-on-linux/) or [Minimal
KubeSphere on
Kubernetes](https://kubesphere.io/docs/quick-start/minimal-kubesphere-on-k8s/).
+Setting up APISIX ingress on KubeSphere requires the following:
+
+* Install [KubeSphere](https://kubesphere.io/docs/quick-start/) on Linux or
minimally on Kubernetes.
* Install [Helm](https://helm.sh/).
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -47,26 +52,51 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Five Service resources were created.
+:::note
+
+By default, APISIX ingress controller will watch the apiVersion of
`networking.k8s.io/v1`.
+
+If the target Kubernetes version is under `v1.19`, add the flag `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1`.
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+Else, if your Kubernetes cluster version is under `v1.16`, set the flag `--set
ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`.
-The gateway service type is set to `NodePort`, so that clients can access
Apache APISIX through the Node IPs and the assigned port.
-If you want to expose a `LoadBalancer` service, try to use
[Porter](https://github.com/kubesphere/porter).
+:::
-Now try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running status. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+This will create the five resources mentioned below:
-### Specify The Ingress Version
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
-apisix-ingress-controller will watch apiVersion of `networking.k8s.io/v1` by
default. If the target kubernetes version is under `v1.19`, add `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1` or
`--set ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`
if your kubernetes cluster is under `v1.16`
+The gateway service type is set to `NodePort`. Clients can access APISIX
through the Node IPs and the assigned port. To use a service of type
`LoadBalancer` with KubeSphere use a bare-metal load balancer implementation
like [openelb](https://github.com/openelb/openelb).
+
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
+
+## Next steps
### Enable SSL
-The ssl config is disabled by default, add `--set gateway.tls.enabled=true` to
enable tls support.
+SSL is disabled by default. You can enable it by adding the flag `--set
gateway.tls.enabled=true`.
+
+### Change default keys
+
+It is recommended to change the default keys for security:
+
+```shell
+--set ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF
+```
+
+:::note
-### Change default apikey
+The `ingress-controller.config.apisix.adminKey` and `admin.credentials.admin`
must be the same. It is better if these are not same as
`admin.credentials.viewer`.
-It's Recommended to change the default key by add `--set
ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF`,
`--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF`, `--set
admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF`, notice that
`ingress-controller.config.apisix.adminKey` and `admin.credentials.admin` must
be the same, and should better not same as `admin.credentials.viewer`.
+:::
diff --git a/docs/en/latest/deployments/minikube.md
b/docs/en/latest/deployments/minikube.md
index 42de539f..4ff92bc7 100644
--- a/docs/en/latest/deployments/minikube.md
+++ b/docs/en/latest/deployments/minikube.md
@@ -1,5 +1,11 @@
---
-title: Install Ingress APISIX on Minikube
+title: minikube
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - minikube
+description: Guide to install APISIX ingress controller on minikube.
---
<!--
@@ -21,16 +27,16 @@ title: Install Ingress APISIX on Minikube
#
-->
-This document explains how to install Ingress APISIX on
[Minikube](https://minikube.sigs.k8s.io/).
+This guide explains how you can install APISIX ingress on
[minikube](https://minikube.sigs.k8s.io/).
## Prerequisites
* Install [Minikube](https://minikube.sigs.k8s.io/docs/start/).
* Install [Helm](https://helm.sh/).
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -45,11 +51,11 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Five Service resources were created.
+This will create the five resources mentioned below:
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
-Now try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running of Ingress APISIX. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
diff --git a/docs/en/latest/deployments/tke.md
b/docs/en/latest/deployments/tke.md
index 3acdbca5..1f84db1f 100644
--- a/docs/en/latest/deployments/tke.md
+++ b/docs/en/latest/deployments/tke.md
@@ -1,7 +1,13 @@
---
-title: Install Ingress APISIX on Tencent TKE
+title: TKE (Tencent)
+keywords:
+ - APISIX ingress
+ - Apache APISIX
+ - Kubernetes ingress
+ - Tencent Cloud Container Service
+ - Tencent Kubernetes Engine
+description: Guide to install APISIX ingress controller on Tencent Kubernetes
Engine (TKE).
---
-
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,17 +27,17 @@ title: Install Ingress APISIX on Tencent TKE
#
-->
-This document explains how to install Ingress APISIX on [Tencent
TKE](https://cloud.tencent.com/product/tke).
+This document explains how you can install APISIX ingress on [Tencent
TKE](https://cloud.tencent.com/product/tke).
## Prerequisites
-* Create a TKE Service on Tencent Cloud and make sure the API Server is
accessible from your workspace.
+* Create a TKE cluster on Tencent Cloud and make sure that the API server is
accessible from your device.
* Install [Helm](https://helm.sh/).
-* Download the kube config for your TKE Console.
+* Update your kube config file with the credentials for your TKE cluster.
-## Install APISIX and apisix-ingress-controller
+## Install APISIX and ingress controller
-As the data plane of apisix-ingress-controller, [Apache
APISIX](http://apisix.apache.org/) can be deployed at the same time using Helm
chart.
+The script below installs APISIX and the ingress controller:
```shell
helm repo add apisix https://charts.apiseven.com
@@ -47,35 +53,65 @@ helm install apisix apisix/apisix \
kubectl get service --namespace ingress-apisix
```
-Please be careful you must configure the `etcd.persistence.size` to multiples
of 10Gi (it's a limitation on TKE), otherwise the
[PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
creation will fail.
+:::info IMPORTANT
+
+Make sure to configure the attribute `etcd.persistence.size` in multiples of
`10Gi` (limitation of TKE). Otherwise, the
[PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
creation will fail.
+
+:::
+
+:::note
+
+By default, APISIX ingress controller will watch the apiVersion of
`networking.k8s.io/v1`.
+
+If the target Kubernetes version is under `v1.19`, add the flag `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1`.
-Five Service resources were created.
+Else, if your Kubernetes cluster version is under `v1.16`, set the flag `--set
ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`.
-* `apisix-gateway`, which processes the real traffic;
-* `apisix-admin`, which acts as the control plane to process all the
configuration changes.
-* `apisix-ingress-controller`, which exposes apisix-ingress-controller's
metrics.
-* `apisix-etcd` and `apisix-etcd-headless` for etcd service and internal
communication.
+:::
-Two Service resources were created, one is `apisix-gateway`, which processes
the real traffic; another is `apisix-admin`, which acts as the control plane to
process all the configuration changes.
+This will create the five resources mentioned below:
-The gateway service type is set to `LoadBalancer` (see [TKE Service
Management](https://cloud.tencent.com/document/product/457/45487?from=10680)
for more details), so that clients can access Apache APISIX through a load
balancer. You can find the load balancer ip by running:
+* `apisix-gateway`: dataplane the process the traffic.
+* `apisix-admin`: control plane that processes all configuration changes.
+* `apisix-ingress-controller`: ingress controller which exposes APISIX.
+* `apisix-etcd` and `apisix-etcd-headless`: stores configuration and handles
internal communication.
+
+The gateway service type will be set to `LoadBalancer`. See [TKE service
management](https://cloud.tencent.com/document/product/457/45487?from=10680)
for more details on setting this up.
+
+You can find the load balancer IP address by running:
```shell
kubectl get service apisix-gateway --namespace ingress-apisix -o
jsonpath='{.status.loadBalancer.ingress[].ip}'
```
-Now open your [TKE console](https://console.cloud.tencent.com/tke2/overview),
choosing your cluster and clicking the Workloads tag, you'll see all pods of
Apache APISIX, etcd and apisix-ingress-controller are ready.
-
-Try to create some
[resources](https://github.com/apache/apisix-ingress-controller/tree/master/docs/en/latest/concepts)
to verify the running status. As a minimalist example, see
[proxy-the-httpbin-service](../tutorials/proxy-the-httpbin-service.md) to learn
how to apply resources to drive the apisix-ingress-controller.
+Now, if you open your [TKE
console](https://console.cloud.tencent.com/tke2/overview), choose your cluster
and click the workloads tag, you will see all the APISIX. ingress controller,
and etcd pods.
-### Specify The Ingress Version
+You should now be able to use APISIX ingress controller. You can try running
this [minimal example](../tutorials/proxy-the-httpbin-service.md) to see if
everything is working perfectly.
-apisix-ingress-controller will watch apiVersion of `networking.k8s.io/v1` by
default. If the target kubernetes version is under `v1.19`, add `--set
ingress-controller.config.kubernetes.ingressVersion=networking/v1beta1` or
`--set ingress-controller.config.kubernetes.ingressVersion=extensions/v1beta1`
if your kubernetes cluster is under `v1.16`
+## Next steps
### Enable SSL
-The ssl config is disabled by default, add `--set gateway.tls.enabled=true` to
enable tls support.
+SSL is disabled by default. You can enable it by adding the flag `--set
gateway.tls.enabled=true`.
+
+### Change default keys
+
+It is recommended to change the default keys for security:
+
+```shell
+--set ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF
+```
+
+```shell
+--set admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF
+```
+
+:::note
-### Change default apikey
+The `ingress-controller.config.apisix.adminKey` and `admin.credentials.admin`
must be the same. It is better if these are not same as
`admin.credentials.viewer`.
-It's Recommended to change the default key by add `--set
ingress-controller.config.apisix.adminKey=ADMIN_KEY_GENERATED_BY_YOURSELF`,
`--set admin.credentials.admin=ADMIN_KEY_GENERATED_BY_YOURSELF`, `--set
admin.credentials.viewer=VIEWER_KEY_GENERATED_BY_YOURSELF`, notice that
`ingress-controller.config.apisix.adminKey` and `admin.credentials.admin` must
be the same, and should better not same as `admin.credentials.viewer`.
+:::