Uisng Nginx Ingress to implement Blue-Green Deployment between two AKS clusters - kubernetes

please i wanted to find out if it is possible to implement a blue-green deployment for my application on separate AKS clusters using nginx ingress controller.
I have the current application (blue) running on one AKS cluster and i have a new AKS cluster (Green, with a new k8s version) where i want to migrate my workloads to.
Is it possible to implement the blue-green deployment strategy between these 2 AKS clusters using nginx ingress controller? If so, please can someone give me a suggestion on how this can be implemented? Thank you

Related

Helm to add k8s objects to an existing deployment

I already have 2 k8s deployments running without helm usage. Now, I have to add the following k8s object to it.
A NodePort Service
Toleration
NodeSelector
Host nginx as a load balancer service
I am trying to achieve it via helm. Can I use labels to connect helm charts with the existing deployment? Or, it is a mandate to use helm charts for the entire deployment?

Kubernetes: Monitoring throughput of each Ingress

We're having a bare metal K8s cluster with an NGINX Ingress Controller.
Is there a way to tell how much traffic is transmitted/received of each Ingress?
Thanks!
Ingress Controllers are implemented as standard Kubernetes applications. Any monitoring method adopted by organizations can be applied to Ingress controllers to track the health and lifetime of k8s workloads. To track network traffic statistics, controller-specific mechanisms should be used.
To observe Kubernetes Ingress traffic you can send your statistic to Prometheus and view them in Grafana (widely adopted open source software for data visualization).
Here is a monitoring guide from the ingress-nginx project, where you can read how do do it step by step. Start with installing those tools.
To deploy Prometheus in Kubernetes run the below command:
kubectl apply --kustomize github.com/kubernetes/ingress-nginx/deploy/prometheus/
To install grafana run this one:
kubectl apply --kustomize github.com/kubernetes/ingress-nginx/deploy/grafana/
Follow the next steps in the mentioned before monitoring guide.
See also this article and this similar question.

Ingress resource deployment

What is the best approach to create the ingress resource that interact with ELB into target deployment environment that runs on Kubernetes?
As we all know there are different cloud provider and many types of settings that are related to the deployment of your ingress resource which depends on your target environments: AWS, OpenShift, plain vanilla K8S, google cloud, Azure.
On cloud deployments like Amazon, Google, etc., ingresses need also special annotations, most of which are common to all micro services in need of an ingress.
If we deploy also a mesh like Istio on top of k8s then we need to use an Istio gateway with ingress. if we use OCP then it has special kind called “routes”.
I'm looking for the best solution that targets to use more standard options, decreasing the differences between platforms to deploy ingress resource.
So maybe the best approach is to create an operator to deploy the Ingress resource because of the many different setups here?
Is it important to create some generic component to deploy the Ingress while keeping cloud agnostic?
How do other companies deploy their ingress resources to the k8s cluster?
What is the best approach to create the ingress resource that interact with ELB into target deployment environment that runs on Kubernetes?
On AWS the common approach is to use ALB, and the AWS ALB Ingress Controller, but it has its own drawbacks in that it create one ALB per Ingress resource.
Is we deploy also a mesh like Istio then we need to use Istio gateway with ingress.
Yes, then the situation is different, since you will use VirtualService from Istio or use AWS App Mesh - that approach looks better, and you will not have an Ingress resource for your apps.
I'm looking for the best solution that targets to use more standard options, decreasing the differences between platforms to deploy ingress resource.
Yes, this is in the intersection between the cloud provider infrastructure and your cluster, so there are unfortunately many different setups here. It also depends on if your ingress gateway is within the cluster or outside of the cluster.
In addition, the Ingress resource, just become GA (stable) in the most recent Kubernetes, 1.19.

Is it possible or right to configure Nginx Ingress Controller on Openshift cluster?

I have Kubernetes cluster setup available on my system. I have verified that my definitions for Ingress controller and Ingress resources working over it as I am able to invoke services inside my K8 cluster from outside the cluster.
Now, I have to move all my resources to Openshift cluster. I just deployed my definitions of Ingress resources from K8 to Openshift but those are not working, as I am not able to access services from outside the cluster. Note that I didn't deploy Ingress controller on Openshift which I did on K8.
The problem is, I don't want to use Openshift Route as an Ingress alternate. So, in order to get my Ingress resource working on OpenShift(OC) cluster what am I supposed to do? Shall I install Ingress controller on Openshift like I did on K8 cluster?
I don't want to use any Openshift specific resource on Openshift cluster, just wanted to utilize embedded Kubernetes of it.
Kindly suggest.

How to deploy statefulset in Kubernetes Federation?

It seems like the federation api currently doesn't support statefulset deployment, but I would like to know is that possible to deploy statefulsets in Kubernetes Federation in the situation described below.
For example, for three pods: pod-0, pod-1, pod-2 are running on cluster A, and pod-3, pod-4, pod5 are running on cluster B?