Kubernetes Multicloud controller Passing wrong IP to external Kubernetes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
High
|
Ian Booth | ||
2.7 |
Fix Released
|
High
|
Joseph Phillips |
Bug Description
I'm using a kubernetes controller on microk8s on which I'm adding an additional k8s. When deploying workloads on the external kubernetes the deployment stays in allocating. While the controller.yaml in .local/share/juju shows this api-endpoint:
api-endpoints: ['172.21.
the agent.conf file in th operator pod of the deployed workload (in external k8s) shows this one:
apiaddresses:
- 10.152.183.83:17070
This is the deployment of the controller:
NAME READY STATUS RESTARTS AGE
pod/controller-0 2/2 Running 1 25m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/
NAME READY AGE
statefulset.
Steps to reproduce this:
First machine:
sudo snap install microk8s --classic
microk8s.enable dns storage metallb
juju bootstrap microk8s lk8s --config controller-
Second machine:
sudo snap install microk8s --classic
microk8s.enable dns storage metallb
microk8s.config
First machine:
cat <external-
juju add-model test ek8s
juju deploy cs:~dominik.
Changed in juju: | |
milestone: | none → 2.9-beta1 |
tags: | added: k8s network spaces |
Changed in juju: | |
milestone: | 2.9-beta1 → 2.8-beta1 |
assignee: | nobody → Ian Booth (wallyworld) |
status: | Triaged → In Progress |
Changed in juju: | |
status: | In Progress → Fix Committed |
Changed in juju: | |
status: | Fix Committed → Fix Released |
The lack of modelling of controller shadow addresses is a current Juju limitation affecting not just k8s controllers. The same would issue apply if the controller were deployed in a lxd container on say aws, or behind a nat etc.
This is a significant feature we'll need to add to the juju roadmap, since any solution will probably involve additions to network spaces modelling, need to account for in cluster vs out of cluster addressing etc etc.