Troubleshooting Kubero installation
There is a kubero debug command in the kubero-cli to help you troubleshoot your installation.
kubero debug
1. Kubero UI is not accessible
Check the Kubero UI CRD
kubectl get kuberoes.application.kubero.dev kubero -n kubero
Expected result
NAME AGE
kubero 8d
Check if the Kubero UI is running
kubectl get pods -n kubero
Expected result
NAME READY STATUS RESTARTS AGE
kubero-785c84f85f-d65t2 1/1 Running 0 6d18h
kubero-registry-7d6d5cdb74-8fqm2 1/1 Running 0 8d <---- Optional
Check the Kubero ingress
kubectl get ingress -n kubero
Expected result
NAME CLASS HOSTS ADDRESS PORTS AGE
kubero nginx demo.kubero.dev 45.79.240.209 80, 443 126d
kubero-registry-ingress nginx registry.demo.kubero.dev 45.79.240.209 80, 443 8d <---- Optional
Check if the DNS entry is correct
dig demo.kubero.dev +noall +question +answer
Expected result
; <<>> DiG 9.10.6 <<>> demo.kubero.dev +noall +question +answer
;; global options: +cmd
;demo.kubero.dev. IN A
demo.kubero.dev. 11574 IN A 45.79.240.209
2. Kubero is not starting the apps
Make sure the Kubero CRDs are installed
kubectl get customresourcedefinitions.apiextensions.k8s.io | grep kubero
Expected result
kuberoapps.application.kubero.dev 2023-01-01T01:10:42Z
kuberocouchdbs.application.kubero.dev 2023-01-01T01:10:43Z
kuberoelasticsearches.application.kubero.dev 2023-01-01T01:10:43Z
kuberoes.application.kubero.dev 2023-01-01T01:10:43Z
kuberokafkas.application.kubero.dev 2023-01-01T01:10:44Z
kuberomongodbs.application.kubero.dev 2023-01-01T01:10:44Z
kuberomysqls.application.kubero.dev 2023-01-01T01:10:44Z
kuberopipelines.application.kubero.dev 2023-01-01T01:10:45Z
kuberopostgresqls.application.kubero.dev 2023-01-01T01:10:45Z
kuberoredis.application.kubero.dev 2023-01-01T01:10:45Z
Check if the Kubero operator is running
kubectl get pods --all-namespaces | grep kubero-operator-controller-manager
Expected result
kubero-operator-system kubero-operator-controller-manager-XXXXXXXX-yyyyyyy 2/2 Running 2 (19h ago) 9d
Check the operators logs
The Namespace may be different on a OLM installation.
kubectl logs kubero-operator-controller-manager-XXXXXXXX-yyyyyyy -n kubero-operator-system -f
Expected result
{"level":"info","ts":1680789537.7990057,"logger":"helm.controller","msg":"Reconciled release","namespace":"tools-production","name":"cyberchef","apiVersion":"applicat^C{"level":"info","ts":1680789547.8039916,"logger":"helm.controller","msg":"Reconciled release","namespace":"kubero-demo","name":"demo","apiVersion":"application.kubero.dev/v1alpha1","kind":"KuberoPipeline","release":"demo"}
{"level":"info","ts":1680789549.4616005,"logger":"helm.controller","msg":"Reconciled release","namespace":"tools-production","name":"rsshub","apiVersion":"application.kubero.dev/v1alpha1","kind":"KuberoApp","release":"rsshub"}
3. You can't issue SSL Certs for your apps
Make sure your domain is accessible for letsencrypt
curl --insecure https://myservice.example.com
Check the SSL Cert Manager
Make sure all Certmanager components are running
kubectl get pods -n cert-manager
Expected result
NAME READY STATUS RESTARTS AGE
cert-manager-99bb69456-x285b 1/1 Running 39 (39h ago) 171d
cert-manager-cainjector-ffb4747bb-cktsq 0/1 Completed 22 218d
cert-manager-cainjector-ffb4747bb-r8gbt 1/1 Running 43 (39h ago) 171d
cert-manager-webhook-545bd5d7d8-282n5 1/1 Running 0 171d
The logs of these pods may hint at what is going wrong.
Search for your signing request
kubectl get certificaterequests.cert-manager.io --all-namespaces
Expected result
NAMESPACE NAME APPROVED DENIED READY ISSUER REQUESTOR AGE
demo-production node-tls-525dn True True letsencrypt-prod system:serviceaccount:cert-manager:cert-manager 194d
demo-production node-tls-cmzh7 True True letsencrypt-prod system:serviceaccount:cert-manager:cert-manager 74d
demo-production node-tls-h87n2 True True letsencrypt-prod system:serviceaccount:cert-manager:cert-manager 134d
demo-production node-tls-qt5v9 True True letsencrypt-prod system:serviceaccount:cert-manager:cert-manager 14d
Check your cluster issuer
kubectl get clusterissuers.cert-manager.io
Expected result
NAME READY AGE
letsencrypt-prod True 222d
kubectl get clusterissuers.cert-manager.io letsencrypt-prod -o yaml
Expected result
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
resourceVersion: "1467"
uid: 02bded44-f4f2-40e7-8c76-f66f0eaf0ca2
spec:
acme:
email: yourname@myservice.example.com
preferredChain: ""
privateKeySecretRef:
name: letsencrypt
server: https://acme-v02.api.letsencrypt.org/directory
solvers:
- http01:
ingress:
class: nginx