gpt4 book ai didi

azure - 如何访问我部署到Azure K8s的服务?

转载 作者:行者123 更新时间:2023-12-03 06:09:26 25 4
gpt4 key购买 nike

我在 Azure 上创建了一个 2 节点 Kubernetes 集群。

然后我使用以下 yaml 部署我的服务:

apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-st
labels:
app: cloud-test
spec:
replicas: 3
selector:
matchLabels:
app: cloud-test
template:
metadata:
labels:
app: cloud-test
spec:
containers:
- name: cloud-test
image: test:latest
imagePullPolicy: Always
ports:
- containerPort: 3046
---
apiVersion: v1
kind: Service
metadata:
name: service-st
spec:
type: ClusterIP
selector:
app: cloud-test
ports:
- protocol: TCP
port: 3046
targetPort: 3046

我正在使用集群 IP,因此我为此创建了一个入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: k8s-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/proxy-body-size: 100m
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /v1(/|$)(.*)
pathType: Prefix
backend:
service:
name: service-st
port:
number: 3046

看起来他们正在工作: enter image description here

enter image description here

我也检查了这个框:

enter image description here

现在,如果我在服务中访问 nginx 的地址(外部 IP),我会从 nginx 得到 404。另外,如果我访问 ip/v1 ,再次得到 404。

我在这里遗漏了什么吗?

最佳答案

那里提到了你的入口类。您正在使用 ALB Controller ,但使用 nginx 类时它不起作用。

Nginx 入口 Controller ,然后您可以使用ingressClassName作为nginx

如果您引用这篇文章Nginx示例作为引用:https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli

ALB Controller 可能正在使用网关 API,因此可能不需要创建入口,我猜您将创建诸如部署之类的资源。我没有使用过 AKS 及其入口 Controller 。

了解有关入口与网关差异的更多信息:https://medium.com/google-cloud/kubernetes-ingress-vs-gateway-api-647ee233693d

引用 AKS 入口:https://learn.microsoft.com/en-us/azure/application-gateway/ingress-controller-install-existing

关于azure - 如何访问我部署到Azure K8s的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76972790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com