Giter Club home page Giter Club logo

aks-ingress-controller's Introduction

aks-ingress-controller

How to deploy nginx-ingress controller in a private Azure Kubernetes & Private ACR.

Pre-requisites

  1. VNET with 2 subnets (Enable Service Endpoint)
  2. Private Azure Container Registry (networking blade should be on Disabled)
  3. Private AKS with RBAC enabled (Attach AKS cluster to registry)
  4. Linux Jumpbox with Azure CLI, Docker, Helm (v 3.7.0), Kubernetes CLI installed

Getting Started

  1. Setup your infrastructure for your Private environment (refer to Create VM-steps)
  2. Create Private Azure Container Registry (refer to createregistry-steps.sh)
  3. Create Private AKS (refer to createaks-steps.sh)

Demo

Create Ingress Controller in Private AKS (Manual Steps): https://youtu.be/CBUbtf3hQWo
Create Ingress Controller in Private AKS with Azure Pipelines : https://youtu.be/FzNMVK-Aq2M

Installing Ingress Controller (Step-by-Step)

  1. From Linux VM, authenticate with your registry and run az acr import to import all necessary images/repositories into the container registry (make sure you have Azure CLI, Docker, Helm (v 3.7.0), Kubernetes CLI installed )
  2. Download desired package for ingress-nginx (Im using version 3.36.0)
  3. Extract .tgz file and run helm push to acr (refer to manual.sh steps for commands)
  4. Authenticate with your ACR and make sure helm pull runs successfully before running helm upgrade command
  5. Create AKS namespace for ingress controller
  6. Create internal-ingress.yaml file to create ingress controller and specify an ip that is not been used inside your vnet (use the internal-ingress.yaml inside ingress folder on this repo for reference)
  7. Run helm upgrade (Refer to manual.sh for commands)
  8. Run demo applications (aks-helloworld.yaml and ingress-demo.yaml) by running kubectl apply from linux vm
  9. Run kubectl get validatingwebhookconfigurations and Delete it (kubectl delete validatingwebhookconfigurations nameoftheWebhook)
  10. Create an ingress route (deploy hello-world-ingress.yaml)
  11. Validate and test ingress controller by running the following:
    a. kubectl run -it --rm aks-ingress-test --image=mcr.microsoft.com/aks/fundamental/base-ubuntu:v0.0.11 -n yournamespace
    b. apt-get update && apt-get install -y curl
    c. curl -L http://youripgivenfortheinternalloadbalancer and curl -L -k http://yourip/hello-world-two
    d. You can also open a browser in a vm with access to this vnet and you should see your ingress working

aks-ingress-controller's People

Contributors

oortizmcp avatar oortizlun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.