|
| 1 | +--- |
| 2 | +title: Install with Helm |
| 3 | +keywords: |
| 4 | + - APISIX ingress |
| 5 | + - Apache APISIX |
| 6 | + - Kubernetes ingress |
| 7 | + - kind |
| 8 | +description: Guide to install APISIX ingress controller on kind. |
| 9 | +--- |
| 10 | +<!-- |
| 11 | +# |
| 12 | +# Licensed to the Apache Software Foundation (ASF) under one or more |
| 13 | +# contributor license agreements. See the NOTICE file distributed with |
| 14 | +# this work for additional information regarding copyright ownership. |
| 15 | +# The ASF licenses this file to You under the Apache License, Version 2.0 |
| 16 | +# (the "License"); you may not use this file except in compliance with |
| 17 | +# the License. You may obtain a copy of the License at |
| 18 | +# |
| 19 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 20 | +# |
| 21 | +# Unless required by applicable law or agreed to in writing, software |
| 22 | +# distributed under the License is distributed on an "AS IS" BASIS, |
| 23 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 24 | +# See the License for the specific language governing permissions and |
| 25 | +# limitations under the License. |
| 26 | +# |
| 27 | +--> |
| 28 | + |
| 29 | +Helm is a package manager for Kubernetes that automates the release and management of software on Kubernetes. |
| 30 | + |
| 31 | +This document guides you through installing the APISIX ingress controller using Helm. |
| 32 | + |
| 33 | +## Prerequisites |
| 34 | + |
| 35 | +Before installing APISIX ingress controller, ensure you have: |
| 36 | + |
| 37 | +1. A working Kubernetes cluster (version 1.26+) |
| 38 | + - Production: TKE, EKS, AKS, or other cloud-managed clusters |
| 39 | + - Development: minikube, kind, or k3s |
| 40 | +2. [kubectl](https://kubernetes.io/docs/tasks/tools/) installed and configured to access your cluster |
| 41 | +3. [Helm](https://helm.sh/) (version 3.8+) installed |
| 42 | + |
| 43 | +Make sure to update the Helm repositories: |
| 44 | + |
| 45 | +```bash |
| 46 | +helm repo add apisix https://charts.apiseven.com |
| 47 | +helm repo add bitnami https://charts.bitnami.com/bitnami |
| 48 | +helm repo update |
| 49 | +``` |
| 50 | + |
| 51 | +## Install APISIX and APISIX Ingress Controller |
| 52 | + |
| 53 | +The script below installs APISIX and APISIX Ingress Controller: |
| 54 | + |
| 55 | +```bash |
| 56 | +helm install apisix \ |
| 57 | + --namespace ingress-apisix \ |
| 58 | + --create-namespace \ |
| 59 | + --set ingress-controller.enabled=true \ |
| 60 | + --set ingress-controller.apisix.adminService.namespace=ingress-apisix \ |
| 61 | + --set ingress-controller.gatewayProxy.createDefault=true \ |
| 62 | + apisix/apisix |
| 63 | +``` |
| 64 | + |
| 65 | +## Install APISIX and APISIX Ingress Controller (Standalone API-driven mode) |
| 66 | + |
| 67 | +To run APISIX in [APISIX Standalone API-driven mode](https://apisix.apache.org/docs/apisix/deployment-modes/#api-driven-experimental), use the following script to install APISIX and the APISIX Ingress Controller: |
| 68 | + |
| 69 | +```bash |
| 70 | +helm install apisix \ |
| 71 | + --namespace ingress-apisix \ |
| 72 | + --create-namespace \ |
| 73 | + --set apisix.deployment.role=traditional \ |
| 74 | + --set apisix.deployment.role_traditional.config_provider=yaml \ |
| 75 | + --set etcd.enabled=false \ |
| 76 | + --set ingress-controller.enabled=true \ |
| 77 | + --set ingress-controller.config.provider.type=apisix-standalone \ |
| 78 | + --set ingress-controller.apisix.adminService.namespace=ingress-apisix \ |
| 79 | + --set ingress-controller.gatewayProxy.createDefault=true \ |
| 80 | + apisix/apisix |
| 81 | +``` |
| 82 | + |
| 83 | +## Install APISIX Ingress Controller |
| 84 | + |
| 85 | +The script below installs APISIX Ingress Controller: |
| 86 | + |
| 87 | +```bash |
| 88 | +# Set the access address and adminkey for apisix |
| 89 | +helm install apisix-ingress-controller \ |
| 90 | + --create-namespace \ |
| 91 | + -n ingress-apisix \ |
| 92 | + --set gatewayProxy.createDefault=true \ |
| 93 | + --set gatewayProxy.provider.controlPlane.auth.adminKey.value=edd1c9f034335f136f87ad84b625c8f1 \ |
| 94 | + --set apisix.adminService.namespace=apisix-ingress \ |
| 95 | + --set apisix.adminService.name=apisix-admin \ |
| 96 | + --set apisix.adminService.port=9180 \ |
| 97 | + apisix/apisix-ingress-controller |
| 98 | +``` |
0 commit comments