gpt4 book ai didi

kubernetes - 为什么使用 nginx-ingress-controller 时,我的 Kubernates 集群上的入口在指定主机上没有响应?

转载 作者:行者123 更新时间:2023-12-02 11:39:02 25 4
gpt4 key购买 nike

我是 Kubernetes 的菜鸟。我已经使用 kubeadm 在我的 Raspberry pi4b 上成功配置了 Kube。我使用演示图像创建了我的第一个部署,它公开了一个带有一些信息的简单页面,如果我记录了 pod,它会说它正确地监听端口 8080。

在按照此 https://limpygnome.com/2019/09/21/raspberry-pi-kubernetes-cluster/ 使用 helm 安装 nginx-ingress-controller(状态正在运行)后,我已经创建了一个指向部署和入口的服务,如教程所述,但无法访问我指定到该入口的主机。每个 pod 的状态都在运行,但我不知道如何修复它。

我不知道问题是入口 Controller ,入口还是其他问题。

这是我的 yaml:

---
apiVersion: v1
kind: Namespace
metadata:
name: hello

---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: hello-world
name: hello-world-deploy
namespace: hello
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: hello-world
spec:
containers:
# - image: docker:stable-dind
- image: pmorjan/demo:latest
name: hello-world
securityContext:
privileged: true
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
labels:
app: hello-world
name: hello-world-service
annotations:
metallb.universe.tf/allow-shared-ip: home-network
namespace: hello
spec:
ports:
- name: http
port: 80
targetPort: 8080
selector:
app: hello-world
sessionAffinity: None
type: LoadBalancer
loadBalancerIP: 192.168.1.241

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: hello-world-ingress
namespace: hello
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: ciao.mirco.com
http:
paths:
- path: /hello
backend:
serviceName: hello-world-service
servicePort: 80


谢谢你的帮助

最佳答案

当您想通过 ingress 访问您的 pod 时,您不需要为您的 pod 创建 LoadBalancer 类型的服务。相反,您为入口 Controller 本身创建一个 LoadBalancer 类型的服务,并为 pod 创建一个 cluserIP 类型的服务。同样要通过 ciao.mirco.com 访问它,您需要在您正在访问的系统的/etc/hosts 文件中添加一个条目,如下所示。

ipaddress ciao.micro.com
ipadress如果您为入口 Controller 或 LoadBalancer IP 创建了一个 Nodeport 类型的服务,则应该是 nodeip 如果您已经创建了一个 LoadBalancer 类型的服务。

在部署 nginx 入口 Controller 的命名空间中为 nginx 入口 Controller 创建一个 NodePort 服务。
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx

创建完成后,您可以检查分配给此服务的节点端口(范围从 30000-32767)。

找出部署了 nginx 入口 Controller pod 的 kubernetes 节点的 IP。

然后您可以通过 nodeport:nodeip/hello 访问它或 ciao.micro.com/hello在您的浏览器中或通过 curl nodeip:nodeport/hello -H 'Host:ciao.mirco.com'

关于kubernetes - 为什么使用 nginx-ingress-controller 时,我的 Kubernates 集群上的入口在指定主机上没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60432834/

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