This is an automated email from the ASF dual-hosted git repository. membphis 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 271be10 doc: add doc about how to run on tke (#187) 271be10 is described below commit 271be10f20baa499b7114b730f007ebb644c040d Author: Alex Zhang <zchao1...@gmail.com> AuthorDate: Wed Jan 20 18:12:54 2021 +0800 doc: add doc about how to run on tke (#187) --- docs/deployments/tke.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/install.md | 3 +- 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/docs/deployments/tke.md b/docs/deployments/tke.md new file mode 100644 index 0000000..c818daa --- /dev/null +++ b/docs/deployments/tke.md @@ -0,0 +1,81 @@ +<!-- +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +--> + +# Install Ingress APISIX on Tencent TKE + +This document explains how to install Ingress APISIX 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. +* Install [Helm](https://helm.sh/). +* Download the kube config for your TKE Console. +* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart). +* Clone [apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller). +* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`. + +## Install APISIX + +[Apache APISIX](http://apisix.apache.org/) as the proxy plane of apisix-ingress-controller, should be deployed in advance. + +```shell +cd /path/to/apisix-helm-chart +helm repo add bitnami https://charts.bitnami.com/bitnami +helm dependency update ./chart/apisix +helm install apisix ./chart/apisix \ + --set gateway.type=LoadBalancer \ + --set allow.ipList="{0.0.0.0/0}" \ + --set etcd.persistence.size=10Gi \ + --namespace ingress-apisix \ +kubectl get service --namespace ingress-apisix +``` + +Please be careful you must configure the `etcd.persistence.size` to multiplese of 10Gi (it's a limitation on TKE), otherwise the [PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) creation will fail. + +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. + +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: + +```shell +kubectl get service apisix-gateway --namespace ingress-apisix -o jsonpath='{.status.loadBalancer.ingress[].ip}' +``` + +Another thing should be concerned that the `allow.ipList` field should be customized according to the [TKE Network Settings](https://cloud.tencent.com/document/product/457/50353), so that the apisix-ingress-controller instances can access the APISIX instances (resources pushing). + +## Install apisix-ingress-controller + +You can also install apisix-ingress-controller by Helm Charts, it's recommended to install it in the same namespace with Apache APISIX. + +```shell +cd /path/to/apisix-ingress-controller +# install base resources, e.g. ServiceAccount. +helm install ingress-apisix-base -n ingress-apisix ./charts/base +# install apisix-ingress-controller +helm install ingress-apisix ./charts/ingress-apisix \ + --set ingressController.image.tag=dev \ + --set ingressController.config.apisix.baseURL=http://apisix-admin:9180/apisix/admin \ + --set ingressController.config.apisix.adminKey=edd1c9f034335f136f87ad84b625c8f1 \ + --namespace ingress-apisix +``` + +Change the `ingressController.image.tag` to the Apache APISIX version that you desire. You have to wait for while until the correspdoning pods are running. + +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](../CRD-specification.md) to verify the running status. As a minimalist example, see [proxy-the-httpbin-service](../samples/proxy-the-httpbin-service.md) to learn how to apply resources to drive the apisix-ingress-controller. diff --git a/docs/install.md b/docs/install.md index bb51a89..279303a 100644 --- a/docs/install.md +++ b/docs/install.md @@ -22,9 +22,10 @@ This is an index page about installing Ingress APISIX in several environments. Click the following links on demands. * [Install Ingress APISIX on Minikube](deployments/minikube.md) -* [Install Ingress APISIX on K3S](deployments/k3s-rke.md) +* [Install Ingress APISIX on K3S and RKE](deployments/k3s-rke.md) * [Install Ingress APISIX on Azure AKS](deployments/azure.md) * [Install Ingress APISIX on AWS EKS](deployments/aws.md) +* [Install Ingress APISIX on Google Cloud GKE](deployments/gke.md) ## Kustomize Support