Outstanding questions in Sonatype blog about Docker images

@ Olu Shiyanbade
Below are the commands you requested I run. Perhaps I am misunderstanding the Nexus Repository architecture, but my current understanding is there is only one Nexus process. What the output of the commands seem to indicate, is that while the exposed ingress ports are all on the exposed 192.168.1.145, the 8082 and 8083 ports are mapped to different (bogus) internal cluster IPs. The 10.152.183.145 is the correct cluster IP for the Nexus process. It is possible to connect to that cluster IP on ports 8081, 8082, and 8083. However, it is not possible to attach to the cluster IP/ports: 10.152.183.247:8082 and 10.152.183.203:8083. My guess is that the Helm chart is creating bogus host names and that the internal DHCP is assigning IP addresses to server processes that don’t exist. While I experimented with changing the Nexus Helm chart templates and running the tests (which required setting up Docker Desktop and Minikube), I was not successful. Any assistance would be appreciated. I apologize that I missed your response; I was coding another software component. Thank you.

fbrier@solar:~$ kubectl get ingresses --all-namespaces
NAMESPACE   NAME            CLASS    HOSTS                                ADDRESS         PORTS     AGE
default     tomcat-static   <none>   solar-tomcat.office.multideck.com    192.168.1.180   80, 443   358d
default     gitea           <none>   solar-gitea.office.multideck.com     192.168.1.180   80, 443   375d
default     mediawiki       <none>   solar-wiki.office.multideck.com      192.168.1.180   80, 443   382d
default     redmine         <none>   solar-redmine.office.multideck.com   192.168.1.180   80, 443   382d
fbrier@solar:~$ kubectl get services --all-namespaces
NAMESPACE     NAME                                              TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
default       kubernetes                                        ClusterIP      10.152.183.1     <none>          443/TCP                      403d
default       ingress-nginx-controller-admission                ClusterIP      10.152.183.199   <none>          443/TCP                      392d
default       cert-manager-webhook                              ClusterIP      10.152.183.12    <none>          443/TCP                      392d
default       cert-manager                                      ClusterIP      10.152.183.179   <none>          9402/TCP                     392d
kube-system   metrics-server                                    ClusterIP      10.152.183.84    <none>          443/TCP                      392d
kube-system   dashboard-metrics-scraper                         ClusterIP      10.152.183.103   <none>          8000/TCP                     392d
default       ingress-nginx-controller                          LoadBalancer   10.152.183.214   192.168.1.180   80:32626/TCP,443:32128/TCP   392d
ingress       ingress                                           LoadBalancer   10.152.183.235   192.168.1.120   80:31313/TCP,443:32636/TCP   392d
openebs       openebs-apiservice                                ClusterIP      10.152.183.96    <none>          5656/TCP                     392d
openebs       admission-server-svc                              ClusterIP      10.152.183.24    <none>          443/TCP                      392d
kube-system   kubernetes-dashboard                              LoadBalancer   10.152.183.25    192.168.1.142   443:30987/TCP                392d
default       redmine-postgresql-headless                       ClusterIP      None             <none>          5432/TCP                     382d
default       redmine-postgresql                                ClusterIP      10.152.183.128   <none>          5432/TCP                     382d
default       redmine                                           LoadBalancer   10.152.183.74    192.168.1.141   80:31559/TCP                 382d
default       mediawiki-mariadb                                 ClusterIP      10.152.183.218   <none>          3306/TCP                     382d
default       mediawiki                                         LoadBalancer   10.152.183.78    192.168.1.143   80:30995/TCP                 382d
kube-system   kube-dns                                          ClusterIP      10.152.183.10    <none>          53/UDP,53/TCP,9153/TCP       375d
default       gitea-postgresql-headless                         ClusterIP      None             <none>          5432/TCP                     375d
default       gitea-postgresql                                  ClusterIP      10.152.183.126   <none>          5432/TCP                     375d
default       gitea-ssh                                         LoadBalancer   10.152.183.186   192.168.1.144   22:30267/TCP                 375d
default       gitea-memcached                                   ClusterIP      10.152.183.30    <none>          11211/TCP                    375d
default       gitea-http                                        LoadBalancer   10.152.183.72    192.168.1.144   8080:30130/TCP               375d
default       tomcat-static                                     LoadBalancer   10.152.183.202   192.168.1.147   80:31511/TCP                 358d
default       jenkins-agent                                     ClusterIP      10.152.183.134   <none>          50000/TCP                    375d
default       jenkins                                           LoadBalancer   10.152.183.112   192.168.1.146   8080:31347/TCP               375d
default       nexus-repo-nexus-repository-manager               LoadBalancer   10.152.183.145   192.168.1.145   8081:31018/TCP               376d
default       nexus-repo-nexus-repository-manager-docker-8082   LoadBalancer   10.152.183.247   192.168.1.145   8082:32034/TCP               24d
default       nexus-repo-nexus-repository-manager-docker-8083   LoadBalancer   10.152.183.203   192.168.1.145   8083:30461/TCP               24d
fbrier@solar:~$ kubectl describe svc nexus-repo-nexus-repository-manager
Name:                     nexus-repo-nexus-repository-manager
Namespace:                default
Labels:                   app.kubernetes.io/instance=nexus-repo
                          app.kubernetes.io/managed-by=Helm
                          app.kubernetes.io/name=nexus-repository-manager
                          app.kubernetes.io/version=3.40.0
                          helm.sh/chart=nexus-repository-manager-40.0.0
Annotations:              meta.helm.sh/release-name: nexus-repo
                          meta.helm.sh/release-namespace: default
                          metallb.universe.tf/allow-shared-ip: {{ ndo_context }}
Selector:                 app.kubernetes.io/instance=nexus-repo,app.kubernetes.io/name=nexus-repository-manager
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.152.183.145
IPs:                      10.152.183.145
IP:                       192.168.1.145
LoadBalancer Ingress:     192.168.1.145
Port:                     nexus-ui  8081/TCP
TargetPort:               8081/TCP
NodePort:                 nexus-ui  31018/TCP
Endpoints:                10.1.140.91:8081
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason        Age                     From             Message
  ----    ------        ----                    ----             -------
  Normal  nodeAssigned  6m12s (x4668 over 24d)  metallb-speaker  announcing from node "solar"
fbrier@solar:~$ kubectl describe svc nexus-repo-nexus-repository-manager-docker-8082
Name:                        nexus-repo-nexus-repository-manager-docker-8082
Namespace:                   default
Labels:                      app.kubernetes.io/instance=nexus-repo
                             app.kubernetes.io/managed-by=Helm
                             app.kubernetes.io/name=nexus-repository-manager
                             app.kubernetes.io/version=3.40.0
                             helm.sh/chart=nexus-repository-manager-40.0.0
Annotations:                 meta.helm.sh/release-name: nexus-repo
                             meta.helm.sh/release-namespace: default
                             metallb.universe.tf/allow-shared-ip: {{ ndo_context }}
Selector:                    app.kubernetes.io/instance=nexus-repo,app.kubernetes.io/name=nexus-repository-manager
Type:                        LoadBalancer
IP Family Policy:            SingleStack
IP Families:                 IPv4
IP:                          10.152.183.247
IPs:                         10.152.183.247
IP:                          192.168.1.145
LoadBalancer Ingress:        192.168.1.145
Port:                        docker-8082  8082/TCP
TargetPort:                  8082/TCP
NodePort:                    docker-8082  32034/TCP
Endpoints:                   10.1.140.91:8082
Session Affinity:            None
External Traffic Policy:     Cluster
LoadBalancer Source Ranges:  0.0.0.0/0
Events:
  Type    Reason        Age                     From             Message
  ----    ------        ----                    ----             -------
  Normal  nodeAssigned  2m18s (x4671 over 24d)  metallb-speaker  announcing from node "solar"
fbrier@solar:~$ kubectl describe svc nexus-repo-nexus-repository-manager-docker-8083
Name:                        nexus-repo-nexus-repository-manager-docker-8083
Namespace:                   default
Labels:                      app.kubernetes.io/instance=nexus-repo
                             app.kubernetes.io/managed-by=Helm
                             app.kubernetes.io/name=nexus-repository-manager
                             app.kubernetes.io/version=3.40.0
                             helm.sh/chart=nexus-repository-manager-40.0.0
Annotations:                 meta.helm.sh/release-name: nexus-repo
                             meta.helm.sh/release-namespace: default
                             metallb.universe.tf/allow-shared-ip: {{ ndo_context }}
Selector:                    app.kubernetes.io/instance=nexus-repo,app.kubernetes.io/name=nexus-repository-manager
Type:                        LoadBalancer
IP Family Policy:            SingleStack
IP Families:                 IPv4
IP:                          10.152.183.203
IPs:                         10.152.183.203
IP:                          192.168.1.145
LoadBalancer Ingress:        192.168.1.145
Port:                        docker-8083  8083/TCP
TargetPort:                  8083/TCP
NodePort:                    docker-8083  30461/TCP
Endpoints:                   10.1.140.91:8083
Session Affinity:            None
External Traffic Policy:     Cluster
LoadBalancer Source Ranges:  0.0.0.0/0
Events:
  Type    Reason        Age                     From             Message
  ----    ------        ----                    ----             -------
  Normal  nodeAssigned  2m50s (x4671 over 24d)  metallb-speaker  announcing from node "solar"