Open Closed

Microservice Solution Deployment to AKS with Azure Pipelines and using existing Helm with custom Helm Values #6364


User avatar
0
ahmet.ulusoy created
  • ABP Framework version: v7.4.2
  • UI Type: MVC /
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes/
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Hello Dear Friends,

We created a new microservice solution with abp suite. We can debug or deploy it to local kubernetes server but there is no information for deploying our solution to AKS. We need step by step documentation for this procedure.

For now,

Creation of ACR completed, Creation of AKS completed, Integration of ACR with AKS completed, Installation of nginx-ingress with public ip completed, Creation of Azure Devops Repo completed, Integration of Azure Pipelines with ACR and AKS completed, But i have some issues on configuring for ingresses or need to learn your way to deploy them on AKS.

As i understand we need to make a diffrent deployment on AKS or need to change helm configurations.

Can you help me, please.


12 Answer(s)
  • User Avatar
    0
    Anjali_Musmade created
    Support Team Support Team Member

    Hello,

    please check https://docs.abp.io/en/commercial/latest/startup-templates/microservice/helm-deployment

    You can also check the Azure deployment scripts and values for eShopOnAbp sample https://github.com/abpframework/eShopOnAbp/tree/main/etc/k8s

    regards,

  • User Avatar
    0
    Anjali_Musmade created
    Support Team Support Team Member

    Hello,

    You should change helm values accordingly like URL's, Connection strings... Are you getting any error while deploying application into AKS ? or Are you getting any error at pod level

  • User Avatar
    0
    ahmet.ulusoy created

    Hello,

    please check https://docs.abp.io/en/commercial/latest/startup-templates/microservice/helm-deployment

    You can also check the Azure deployment scripts and values for eShopOnAbp sample https://github.com/abpframework/eShopOnAbp/tree/main/etc/k8s

    regards,

    Hello,

    I already checked the given documentation and used the steps but it says "This documentation introduces guidance for running your microservice template on the local Kubernetes cluster".

    It's working on local kubernetes server.

    I already checked the given eShopOnAbp sample.

    I already made same steps but I couldn't get it work.

  • User Avatar
    0
    ahmet.ulusoy created

    Hello,

    You should change helm values accordingly like URL's, Connection strings... Are you getting any error while deploying application into AKS ?
    or Are you getting any error at pod level

    There is no error on pods and etc only problem, configuration of nginx-ingress.

    So, I need step by step configuration document for AKS.

    Contains every change and operation after project created.

  • User Avatar
    0
    Anjali_Musmade created
    Support Team Support Team Member

    Hi,

    if helm deploy is not working for installing NGINX Ingress controller then you run below command for installing NGINX kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml kubectl get pods --namespace ingress-nginx kubectl get service ingress-nginx-controller –namespace ingress-nginx Browse to that External-IP, you should be directed to 404 Not Found page

  • User Avatar
    0
    ahmet.ulusoy created

    Hi,

    if helm deploy is not working for installing NGINX Ingress controller
    then you run below command for installing NGINX kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml kubectl get pods --namespace ingress-nginx kubectl get service ingress-nginx-controller –namespace ingress-nginx Browse to that External-IP, you should be directed to 404 Not Found page

    Helm deploy is working, also pods and services are working.

    I think there is some configuration issue on Ingresses.

    Can you figure out from below pictures what is the issue?

  • User Avatar
    0
    ahmet.ulusoy created

    Dear Support Team,

    I need fully detailed step by step documentation for deployment of Microservice Solution to Azure Kubernetes Services.

    Can you help me please?

  • User Avatar
    0
    gterdem created
    Support Team Senior .NET Developer

    We have application deployment guide for Azure at https://docs.abp.io/en/commercial/latest/startup-templates/application/azure-deployment/azure-deployment?UI=MVC&DB=EF&Tiered=No but we don't have a step by step guide for microservice template deployment to Azure simply because it is not really related to ABP framework and we don't have enough knowledge.

    You can share the log information about the error you come across after deployment when you navigated to your application to diagnose the problem better. Otherwise, a screenshot of an Azure Services (or AWS or Google KS etc) because those platforms are not in our expertise.

  • User Avatar
    0
    ahmet.ulusoy created

    We have application deployment guide for Azure at https://docs.abp.io/en/commercial/latest/startup-templates/application/azure-deployment/azure-deployment?UI=MVC&DB=EF&Tiered=No but we don't have a step by step guide for microservice template deployment to Azure simply because it is not really related to ABP framework and we don't have enough knowledge.

    You can share the log information about the error you come across after deployment when you navigated to your application to diagnose the problem better. Otherwise, a screenshot of an Azure Services (or AWS or Google KS etc) because those platforms are not in our expertise.

    We bought abp because of it has azure ready deployment configuration for microservice solutions. Therefore, i ask for your help.

    I'll share detailed information on question tomorrow.

  • User Avatar
    0
    hinairusu created

    Hi,

    if helm deploy is not working for installing NGINX Ingress controller
    then you run below command for installing NGINX
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
    kubectl get pods --namespace ingress-nginx
    kubectl get service ingress-nginx-controller –namespace ingress-nginx
    Browse to that External-IP, you should be directed to 404 Not Found page

    Helm deploy is working, also pods and services are working.

    I think there is some configuration issue on Ingresses.

    Can you figure out from below pictures what is the issue?

    Without seeing your charts specifically I can't say for certain, but I strongly suspect your fault lies in the Ingress YAML files. Your curent Ingresses do not point at an ingress class as you can see in my snoip from our deployment:

    an acceptable YAML for the helm chart that we use is:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress
      annotations:
      #  kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/rewrite-target: /
        nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
        nginx.ingress.kubernetes.io/proxy-buffer-size: 32k
        nginx.ingress.kubernetes.io/proxy-buffers-number: "8"
        cert-manager.io/cluster-issuer: letsencrypt-production
        nginx.ingress.kubernetes.io/configuration-snippet: |
          more_set_input_headers "from-ingress: true";
    spec:
      ingressClassName: nginx
      tls:
      - hosts:
          - {{ .Values.ingress.host }}
        secretName: {{ .Values.ingress.tlsSecret }}
      rules:
      - host: "{{ .Values.ingress.host }}"
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: {{ .Release.Name }}-{{ .Chart.Name }}
                port:
                  number: 80
    

    Although YMMV. Worth noting I don't work for ABP, but I do a lot of work in the K8s space - and annoyances like that Acme solver you have there not resolving are something that you'll smack your head against quite often whether you use ABP or not :)

  • User Avatar
    0
    ahmet.ulusoy created

    Hi,

    if helm deploy is not working for installing NGINX Ingress controller
    then you run below command for installing NGINX
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
    kubectl get pods --namespace ingress-nginx
    kubectl get service ingress-nginx-controller –namespace ingress-nginx
    Browse to that External-IP, you should be directed to 404 Not Found page

    Helm deploy is working, also pods and services are working.

    I think there is some configuration issue on Ingresses.

    Can you figure out from below pictures what is the issue?


    Without seeing your charts specifically I can't say for certain, but I strongly suspect your fault lies in the Ingress YAML files. Your curent Ingresses do not point at an ingress class as you can see in my snoip from our deployment:

    an acceptable YAML for the helm chart that we use is:

    apiVersion: networking.k8s.io/v1 
    kind: Ingress 
    metadata: 
      name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress 
      annotations: 
      #  kubernetes.io/ingress.class: "nginx" 
        nginx.ingress.kubernetes.io/rewrite-target: / 
        nginx.ingress.kubernetes.io/force-ssl-redirect: "true" 
        nginx.ingress.kubernetes.io/proxy-buffer-size: 32k 
        nginx.ingress.kubernetes.io/proxy-buffers-number: "8" 
        cert-manager.io/cluster-issuer: letsencrypt-production 
        nginx.ingress.kubernetes.io/configuration-snippet: | 
          more_set_input_headers "from-ingress: true"; 
    spec: 
      ingressClassName: nginx 
      tls: 
      - hosts: 
          - {{ .Values.ingress.host }} 
        secretName: {{ .Values.ingress.tlsSecret }} 
      rules: 
      - host: "{{ .Values.ingress.host }}" 
        http: 
          paths: 
          - path: / 
            pathType: Prefix 
            backend: 
              service: 
                name: {{ .Release.Name }}-{{ .Chart.Name }} 
                port: 
                  number: 80 
    

    Although YMMV. Worth noting I don't work for ABP, but I do a lot of work in the K8s space - and annoyances like that Acme solver you have there not resolving are something that you'll smack your head against quite often whether you use ABP or not :)

    I fixed the helm chats for azure because azure uses an updated version for helm.

    Any way, I changed lot's of things in helm charts and create a custom helm value yaml for azure from scratch.

    Now, everything works fine with acme tls.

    Now, i need to find a way for changing helm charts and custom helm value yaml for azure which uses a valid wildcard certificate which is imported to the azure key vault service.

    Is there any examples that shows using a custom valid wildcard certificate in azure key vault and used by nginx ingress?

  • User Avatar
    0
    gterdem created
    Support Team Senior .NET Developer

    Hi, Do these links help to solve your problem?

    • https://blog.baeke.info/2020/12/07/certificates-with-azure-key-vault-and-nginx-ingress-controller/
    • https://blogs.perficient.com/2023/06/28/dealing-with-wildcard-ssl-certificates-on-azure-and-kubernetes/
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11