Я использую minikube
для создания локального кластера kubernetes.
Я создаю ReplicationController
через webapp-rc.yaml
файл.
apiVersion: v1
kind: ReplicationController
metadata:
name: webapp
spec:
replicas: 2
template:
metadata:
name: webapp
labels:
app: webapp
spec:
containers:
- name: webapp
image: tomcat
ports:
- containerPort: 8080
и печатаю ip стручков в stdout:
kubectl get pods -l app=webapp -o yaml | grep podIP
podIP: 172.17.0.18
podIP: 172.17.0.1
и я хочу получить доступ к модулю, используя curl
curl 172.17.0.18:8080
Но стандартный вывод даетя: curl: (52) Empty reply from server
Я знаю, что могу получить доступ к своему приложению в Docker-контейнере в модуле через службу.
Я нахожу этот код в книге.Но книга не дает context
для выполнения этого кода.
Используя minikube
, как получить доступ к pod через pod ip, используя curl на хост-компьютере?
update 1
Я нахожу способ, используя kubectl proxy
:
➜ ~ kubectl proxy
Starting to serve on 127.0.0.1:8001
, и затем я могу получить доступ к модулю через curl, как это:
curl http://localhost:8001/api/v1/namespaces/default/pods/webapp-jkdwz/proxy/
webapp-jkdwz
можно найти по команде kubectl get pods -l app=webapp
update 2
minikube ssh
- войти в minikube VM
и затем я могу использовать curl <podIP>:<podPort>
, для моего случая это curl 172.17.0.18:8080