Azure tutorials unclear to this newcomer (part 1) #1956
Unanswered
ian-barlow
asked this question in
Q&A
Replies: 1 comment
-
Tried bumping the version to 0.7.6 by amending the externaldns.yaml file. No change.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Looking for some advice on getting started with ExternalDNS on AKS (rbac enabled, Azure CNI network) that doesn't assume too much prior knowledge of helm or nginx. I'm failing to get things running so looking for hints, or straight up help, on where things might be going wrong along the way.
Install NGINX Ingress Controller
The helm chart mentioned... stable/nginx-ingress has been depreciated. Pulling together from multiple sources I try:
Results look plausible with these services being created in a ingress-nginx namespace, where 10.33.0.0/16 is the service network:
But this isn't quite what we're looking for, we want to publish a load balancer with an address from a Vnet associated with the AKS cluster - so our private services are accessible only from our Azure network environment. To do that we need to grant the AKS cluster (an MI in our case but could be an SP) rights on the Vnet as described here.
And finally we pass an additional flag to the helm installer, which we do on the command line:
This again looks plausible and the "External IP" is from the desired Vnet range (10.36.0.0/16).
Provision Azure Private DNS and Configure service principal for managing the zone
We create the SP for ExternalDNS
Then we create an RG and populate it with a Private DNS Zone. The instructions to create a 'random' RFC1918 don't seem to fit either a internal or an external load balancer situation and the Vnet we're deploying the internal-ingress too is already in existence and has a load balancer deployed to it. So here we veer away from the tutorial a bit by using our own Vnet.
We linked the private DNS zone to the AKS Vnet via the portal, our AKS Vnet is located in another RG.
There aren't any particular test we can do at this point to check we have everything right but we've checked and double checked and for the purposes of testing granted both the AKS MI and ExternalDNS SP the Owner role in the subscription being used for testing. Then we continue and deploy ExternalDNS...
Deploy ExternalDNS
First we construct the json file named azure.json containing details of the RG of the Private DNS Zone resource, tenant ID, subscription ID and the SP ID and secret for External-DNS.
Then we convert this to a generic secret in AKS named "azure-config-file"
As our AKS cluster has RBAC enabled and we're standing up ExternalDNS for the cluster we choose the "Manifest (for clusters with RBAC enabled, cluster access)" and copy this to a file externaldns.yaml, then modify the final 'args' section, inserting the Azure subscription ID and the debug flags:
Then run ExternalDNS:
Problem is this is a great long homerun deployment and at least for us it's not working out. ExternalDNS starts and runs but reports a 403 in the logs for the pod at startup and approximately every 60s thereafter. The object id referenced in the error is not something I can find in my tenant right now - it's not the tenant ID, Subs ID, not the SP ID, not the MI's object or app ID, can't find it in AzureAD at all.
In debugging a permission issue we've granted the AKS MI and the ExternalDNS SP owner rights on the subscription - no difference. We don't speak 'go' but even took a pass at the source code but that's a little over my head.
Would really appreciate any hints folks might have as to getting this working?
Beta Was this translation helpful? Give feedback.
All reactions