Understanding Azure Kubernetes Service (AKS) - azure

I need some help to have a better understanding of Azure Kubernetes Service (AKS).
From what I understood (from official and unofficial documentaion), AKS provides everything I need to work with a K8s cluster, that is to say all nodes I need for my deployments. All these nodes are VMs in their (Microsoft) Clou and are created on each deployment. Is that correct ?
Is it possible to add my personnal nodes in the cluster ?
Actually, I have some RPi that I want to use as nodes in a K8s cluster. I want to use K8s to manage the deployments of some docker application on my Raspberry Pis. I would like to know if it's possible to do that with AKS.
Thanks

No, AKS is just a managed kubernetes service, you cannot add your own nodes to it, since you dont control masters. you can look at AKS-engine. that is an easy way to create a kubernetes cluster that you will manage and can do anything with it.

Related

Do I need minikube if I'm using a k8 cluster in Azure Cloud?

I'm trying to deploy a simple API into an AKS and want to show it off to the internet using an ingress controller. I want to know if I'm using cloud do I need to install minikube?
Minikube is designed for local Kubernetes development and testing. It supports one node by default. So it is not related to your AKS setup, i.e you don't need minikute for AKS.
To be able to demo your setup on the Internet, you can set up an AKS but be mindful of securities and make sure that you are not exposing your entire cluster on the Internet.

Does the cloud code plugin for intellij work with Azure

I see that GCP is set on default to sign in so wondering if it works with Azure and if so how do i connect to it
Cloud Code IntelliJ Kubernetes features do work with any Kubernetes cluster, regardless of vendor, local or remote. Cloud Code uses standard kubectl configuration (kubeconfig file) to communicate with clusters. When you have your Azure cluster set up, make sure you have it configured on your machine for kubectl (so kubectl config get-contexts contains an entry for your Azure cluster and it is properly configured and accessible - please follow Azure Kubernetes configuration documentation for that).
Once Azure cluster is configured on your machine, it will appear in Cloud Code - you can use the Kubernetes Explorer, develop and debug on it just like with GKE or any other Kubernetes cluster of you choosing.

Ways to improve inter app-service communication

I have two app services(service A and Service B) developed in .net core 3.1 and hosted as two independent app service in azure. Service A is heavily dependent on service B. Is there is way (Azure offering) to make them communicate faster? Is hosting them in same container will improve inter service communication performance? Any suggestion on kubernetes?
If you are not using Azure Kubernetes Offering yet, (AKS) I would recommend spinning up a cluster. (note that it supports windows nodes in case you need them)
You should keep your services separated into two pods (https://learn.microsoft.com/en-us/azure/aks/concepts-clusters-workloads#pods)
and create a matching kubernetes service.
Now if you would like to have your POD run on the same node to increase the communication speed, you should look at using pod affinity, which will allow to have pod pods run on the same node, without having to tie them to a particular node (node affinity)
https://learn.microsoft.com/en-us/azure/aks/operator-best-practices-advanced-scheduler#inter-pod-affinity-and-anti-affinity

Is there a way to manage modules deployed on iotedge device by using AKS(Azure Kubernetes Service)?

I have been looking at using the kubernetes for container orchestration . However, as far as i know kubernetes could be on-prem or managed as service through Azure Kubernetes Service. I have known that on-prem support for K8s is being provided by edge , however I wonder how this would work if my workloads were on AKS.
Can you clarify your scenario more?
We have a public preview that one can register a k8s cluster as an edge device. And can deploy applications to the k8s cluster Edge through iothub. The k8s cluster can be on-prem or aks. Same instructions can be followed. https://learn.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-kubernetes.
Another way is to connect iothub to a K8s cluster through virtual kublet. https://github.com/Azure/iot-edge-virtual-kubelet-provider.
This way your workload can be deployed to Edge devices by iothub with k8s api or kubectl.
Would like to understand the needs and hear feedback when trying.
Thanks
Cindy Xing #msft
Not sure if I understood correctly your question, but I understood that you would like to manage IoT edge deployments through K8s. Is my understanding correct?
There is an experimental project that helps managing IoT Edge deployments via simple kubectl commands

How to connect a Vagrant Kubernetes cluster to Azure DevOps

I have my own Kubernetes cluster (not AKS) made of several vagrant VMs. I have one VM for the Master and 2 others for the worker nodes.
I'm working with Azure DevOps Pipeline and I would like to deploy my docker container to this Kubernetes cluster.
There is the task Deploy to Kubernetes, but it seems to be only for an AKS cluster.
Is there a way to connect the pipeline with my own cluster ?
I've tried to add a new Service Connection for Kubernetes using the kubeconfig (~/.kube/config ?) but I was not able to verify the connection from Azure DevOps. I guess I need to do something on the VMs to make it reachable from internet and allow the connection. How can I do that ?
Thanks for helping me.
You need to create a kubernetes service connection and reference that connection in the release pipeline by picking kubernetes service connection (instead of Azure Resource Manager). Your cluster should be oppublicly accessible.

Resources