Context
I have installed a kubernetes cluster with kubeadm on two openstack instances ( one control and one worker). I am at the point where I can start a deployment and see the app is running by looking at the logs. My endgoal is to be able to go to <my_openstack_instance_url>/my_app_1 and .../my_app_2 to access different services / apps that I let kuberenetes manage..
I am not the Openstack Admin. I only have a few instances and one floating ip available. I cannot manipulate the openstack setup.
I am new to kubernetes ( first time setting it up ).
I used the official tutorial for kubeadm to set up a kubernetes cluster with one control node ( has the floating ip) and one worker node.
My init command was
sudo kubeadm init --cri-socket unix:///var/run/cri-dockerd.sock --pod-network-cidr=192.168.0.0/16
My Problem
I am trying to follow the official kubernetes documentation to set up the deplyoment and service but I am running into diverse problems.
- I cannot at all use Port Forwarding cause socat is not found by kubernetes even though it is installed.
- Any kind of curl command from the tutorials to verify that a deployment or service is accessible never returns anything.
- In tutorials using minikube I do not know how do modify the curl commands to work with a kubeadm setup.
What I tried in detail
https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/
Whatever IP I use as the public Ip, the curl command never gives any kind of response. I tried using the IP output of kubectl cluster-info, the floating ip of the openstack instance ( control node) and the Cluster-IP shown in kubectl get services.
I can verify the tutorial container is running as the get deployment and get service show the entries and that the app is running.
When trying to check the node IPS i never see any external ip. Not even on the control node.
https://kubernetes.io/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/
Even though the proxy is running the proxy command
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME:8080/proxy/
always returns that the pod at that port is not found. Still curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME returns the pod data
What I tried for debugging
- I already set up security rules so the worker instance allows traffic to the container and nodes ports as described in the kubernetes documentation.
- I ensured deployment, service and enpoints are running with the kubectl get command.
- I searched for specific tutorials on kubernetes on openstack but did not find anything I can use while not having admin access to openstack.
- I used some of my own images and shelled into the container / used kubectl logs. I always found the expected logging output.
- I used the kubectl describe output to check events, allocations etc.
- I used describe to ensure the worker node is correctly registered.
I would be greatful for pointers to further ressources and of course any direct help. If you need further system infos I can add them.