NAV*_*GAM 5 deployment chat xmpp ejabberd google-cloud-platform
我在 GCP 中部署了 ejabberd/ecs dokcer 映像,服务类型为节点端口,并尝试使用入口访问它,但它不起作用,我无法使用入口访问服务。我为相同的部署添加了另一个服务,其服务类型为负载均衡器,现在我可以直接从该服务访问 ejabberd 服务器。我不知道为 ejabberd 服务添加入口的正确方法是什么。
以下是我的 yaml 文件: Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ejabberd-deployment
spec:
replicas: 1
selector:
matchLabels:
app: ejabberd-deployment
template:
metadata:
labels:
app: ejabberd-deployment
spec:
containers:
- name: ejabberd-container
image: ejabberd/ecs
ports:
- containerPort: 5222
- containerPort: 5443
- containerPort: 4369
Run Code Online (Sandbox Code Playgroud)
服务.yaml
apiVersion: v1
kind: Service
metadata:
name: ejabberd-service
namespace: development
annotations:
# cloud.google.com/backend-config: '{"ports": {"5443":"ejabberd-backend-config"}}'
cloud.google.com/backend-config: '{"default":"ejabberd-backend-config"}'
spec:
ports:
- port: 80
targetPort: 5222
protocol: TCP
name: xmpp
- port: 443
targetPort: 5443
protocol: TCP
name: https
selector:
app: ejabberd-deployment
type: NodePort
Run Code Online (Sandbox Code Playgroud)
后端配置.yaml
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: ejabberd-backend-config
spec:
healthCheck:
checkIntervalSec: 15
port: 5443
type: HTTPS
requestPath: /ws
healthyThreshold: 1
unhealthyThreshold: 3
timeoutSec: 15
Run Code Online (Sandbox Code Playgroud)
Ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ejabberd-ingress
annotations:
kubernetes.io/ingress.class: "gce"
spec:
tls:
- hosts:
- dev-chat.mydomain.com
secretName: ssl-secretname
defaultBackend:
service:
name: ejabberd-service
port:
number: 443
rules:
- host: dev-chat.mydomain.com
http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: ejabberd-service
port:
number: 443
Run Code Online (Sandbox Code Playgroud)
上面是我的 yaml 文件。我想从入口 URL 访问 ejabberd 服务。请帮助我解决我在这里面临的困难,并提出任何可行的替代方案。
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |