無法使用 docker 桌面訪問我在 K8s 集群中運行的節點 js 應用程式。以下是物件 Skaffold 配置:
apiVersion: skaffold/v2beta26
kind: Config
deploy:
kubectl:
manifests:
- ./objects/*
build:
local:
push: false
artifacts:
- image: sq/accounts-backend
context: ../accounts-backend
docker:
dockerfile: Dockerfile.dev
sync:
manual:
- src: "**/*.js"
dest: .
- src: "public/**/*.css"
dest: .
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: accounts-backend-deployment
spec:
replicas: 2
selector:
matchLabels:
component: accounts-backend
template:
metadata:
labels:
component: accounts-backend
spec:
containers:
- name: accounts-backend
image: sq/accounts-backend
ports:
- containerPort: 5000
env:
集群 IP:
apiVersion: v1
kind: Service
metadata:
name: accounts-backend-cluster-ip-service
spec:
type: ClusterIP
selector:
component: accounts-backend
ports:
- port: 5000
targetPort: 5000
入口:
apiVersion: networking.k8s.io/v1
# UPDATE API
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/use-regex: "true"
# ADD ANNOTATION
nginx.ingress.kubernetes.io/rewrite-target: /$1
# UPDATE ANNOTATION
spec:
rules:
- http:
paths:
- path: /api/?(.*)
# UPDATE PATH
pathType: Prefix
# ADD PATHTYPE
backend:
service:
# UPDATE SERVICE FIELDS
name: accounts-backend-cluster-ip-service
port:
number: 5000
我能夠通過執行來驗證部署是否已啟動并且應用程式正在運行skaffold dev。我嘗試訪問 localhost、127.0.0.1 和 docker 的內部 IP,但無法訪問應用程式。在瀏覽器中嘗試連接時,連接時間過長并且連接被拒絕。
入口的輸出描述:
Name: ingress-service
Namespace: default
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
*
/api/?(.*) accounts-backend-cluster-ip-service:5000 (10.1.0.50:5000,10.1.0.51:5000)
Annotations: kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: true
Events: <none>
uj5u.com熱心網友回復:
默認情況下,skaffold dev僅埠轉發用戶定義的埠轉發,即在skaffold.yaml. 例如:
portForward:
- resourceType: deployment
resourceName: accounts-backend-deployment
port: 5000
localPort: 8080
您還可以使用skaffold dev --port-forward=user,services埠轉發服務以及任何用戶定義的埠轉發。
Skaffold 埠轉發不包括入口:這是當前特定于集群的。例如,使用 minikube,您需要minikube tunnel單獨運行,或者minikube service -n ingress-nginx --url ingress-nginx-controller如果使用nginx-ingress.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/419579.html
標籤:
