Итак, у меня возникла проблема, когда я получаю сообщение ERR_CONNECTION_REFUSED, когда пытаюсь позвонить с моего внешнего интерфейса, который настроен как входной. Мой бэкэнд-экспресс-сервер работает на порту 5000 и настроен как ClusterIP. Я читал, что Docker для Mac локальный кластер ip такой же, как localhost, вот как я его установил.
Я уверен, что у меня есть файлы и сеть правильно. Я просто не уверен, куда направить вызов API на серверную часть. Это тоже localhost? Я включу файлы ниже.
Развертывание веб-интерфейса
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-deployment
spec:
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend-container
image: mrich6347/vue-frontend:5
resources:
requests:
memory: "32Mi"
cpu: "100m"
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 8080
Интерфейс
apiVersion: v1
kind: Service
metadata:
name: frontend-service
spec:
type: ClusterIP
selector:
app: frontend
ports:
- port: 8080
targetPort: 8080
Экспресс-развертывание сервера
apiVersion: apps/v1
kind: Deployment
metadata:
name: express-server-deployment
spec:
selector:
matchLabels:
app: express-server
template:
metadata:
labels:
app: express-server
spec:
containers:
- name: express-server
image: mrich6347/express-server:5
resources:
requests:
memory: "32Mi"
cpu: "100m"
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 5000
Служба экспресс-обслуживания
apiVersion: v1
kind: Service
metadata:
name: express-server-service
spec:
type: ClusterIP
selector:
app: express-server
ports:
- port: 5000
targetPort: 5000
Вот мой вызов API от Vue
export default {
name: 'app',
components: {
HelloWorld
},
created: async () => {
console.log("SERVER IS UP")
let res = await axios.get("http://127.0.0.1:5000/test");
console.log(res)
}
}
И, наконец, мой простой Express API
const app = require('express')();
var cors = require('cors')
app.use(cors())
app.get("/test", (req, res) => {
res.send("WORKING!")
})
app.listen(5000, () => {
console.log("Server is up on 5000")
})
Входной контроллер
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traffic-router
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: frontend-service
servicePort: 8080