【发布时间】:2021-09-23 12:40:37
【问题描述】:
我在 Hetzner 服务器上使用this nginx 入口控制器。安装入口控制器后,我可以通过其 IP 访问工作节点,但无法访问集群内 pod 上运行的应用程序。我错过了什么吗? Ingress 和 Traefik 是不是不同,在术语上有点混淆。
服务文件-
apiVersion: v1
kind: Service
metadata:
name: service-name-xxx
spec:
selector:
app: app-name
ports:
- protocol: 'TCP'
port: 80
targetPort: 4200
type: LoadBalancer
部署文件-
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-name
labels:
app: app-name
spec:
replicas: 1
selector:
matchLabels:
app: app-name
template:
metadata:
labels:
app: app-name
spec:
imagePullSecrets:
- name: my-registry-key
containers:
- name: container-name
image: my-private-docker-img
imagePullPolicy: Always
ports:
- containerPort: 4200
入口文件-
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-name
spec:
rules:
- host:
http:
paths:
- pathType: Prefix
path: "/app"
backend:
service:
name: service-name-xxx
port:
number: 4200
【问题讨论】:
-
你的应用暴露了吗?你能分享任何配置文件吗?回答你的最后一个问题 Traefik 是一个 Ingress 控制器,例如 nginx 和官方文档中的其他控制器。
-
@JakubSiemaszko 我在上面添加了文件并尝试了命令
kubectl expose deployment deployment-name --type=LoadBalancer --name=service-name-xxx,即Error from server (AlreadyExists): services "service-name-xxx" already exists
标签: kubernetes traefik nginx-ingress kubernetes-cluster bare-metal-server