![](/img/trans.png)
[英]How to expose a service from minikube to be able to access it from another device in the same network?
[英]How to start a service and access it in minikube
我在 minikube 中部署了一個 web 應用程序。
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: maypp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp
imagePullPolicy: Never
ports:
- containerPort: 8080
restartPolicy: Always
服務:
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
type: NodePort
ports:
- port: 8080
在kubectl apply -f.
要部署,它們都在運行。
kubectl get po
NAMESPACE NAME READY STATUS RESTARTS AGE
default myapp-5d042b65c8-h7kag 1/1 Running 0 10m
kubectl get svc
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default myservice NodePort 10.102.128.35 <none> 8080:32212/TCP 10m
運行minikube service
在瀏覽器中打開服務:
minikube service myservice
|----------------|--------------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|----------------|--------------------|-------------|---------------------------|
| default | myservice | 8080 | http://192.168.49.2:32212 |
|----------------|--------------------|-------------|---------------------------|
🏃 Starting tunnel for service myservice.
|----------------|--------------------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|----------------|--------------------|-------------|------------------------|
| default | myservice | | http://127.0.0.1:55401 |
|----------------|--------------------|-------------|------------------------|
🎉 Opening service default/myservice in default browser...
在瀏覽器中,我無法同時使用http://192.168.49.2:32212
和http://127.0.0.1:55401
訪問我的應用程序。 甚至http://127.0.0.1:8080
。
從 pod 的日志來看,容器中的 web 服務器正在運行:
kubectl logs -f myapp-5d042b65c8-h7kag
...
____________________________________O/_______
O\
⇨ http server started on [::]:8080
但是沒有得到正確訪問端點的方法。 所以沒有任何交通發生。
如果我使用 docker 部署容器,它可以與http://127.0.0.1:8080
一起使用。
問題是Service
中缺少selector
字段。
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
type: NodePort
selector:
app: myapp
ports:
- port: 8080
服務根據服務規范中定義的與 Pod 上定義的標簽匹配的選擇器將流量路由到 Pod。
從文檔的定義服務部分:
服務選擇器的 controller 持續掃描與其選擇器匹配的 Pod,然后將任何更新發布到端點 object 也稱為“我的服務”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.