nginx - 我无法获得 Ingress 服务正常工作的基本示例
问题描述
我正在努力处理一个非常基本的入口服务面向 nginx pod 的示例。当我尝试访问我的示例站点时,我会得到这个简单的文本输出,而不是默认的 nginx 页面:
404 page not found
这是我正在使用的部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 4
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
spec:
rules:
- host: argo.corbe.net
http:
paths:
- backend:
serviceName: ningx
servicePort: 80
k3s kubectl 获取 pods -o 宽:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deployment-d6dcb985-942cz 1/1 Running 0 8h 10.42.0.17 k3s-1 <none> <none>
nginx-deployment-d6dcb985-d7v69 1/1 Running 0 8h 10.42.0.18 k3s-1 <none> <none>
nginx-deployment-d6dcb985-dqbn9 1/1 Running 0 8h 10.42.1.26 k3s-2 <none> <none>
nginx-deployment-d6dcb985-vpf79 1/1 Running 0 8h 10.42.1.25 k3s-2 <none> <none>
k3s kubectl -o wide 获取服务:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 5d <none>
nginx-service ClusterIP 10.43.218.234 <none> 80/TCP 8h app=nginx
k3s kubectl -o wide 获取入口:
NAME CLASS HOSTS ADDRESS PORTS AGE
nginx-ingress <none> argo.corbe.net 207.148.25.119 80 8h
k3s kubectl 描述部署 nginx-deployment:
Name: nginx-deployment
Namespace: default
CreationTimestamp: Mon, 22 Feb 2021 15:19:07 +0000
Labels: app=nginx
Annotations: deployment.kubernetes.io/revision: 2
Selector: app=nginx
Replicas: 4 desired | 4 updated | 4 total | 4 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=nginx
Containers:
nginx:
Image: nginx
Port: 8080/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-7848d4b86f (4/4 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 2m43s deployment-controller Scaled up replica set nginx-deployment-7848d4b86f to 1
Normal ScalingReplicaSet 2m43s deployment-controller Scaled down replica set nginx-deployment-d6dcb985 to 3
Normal ScalingReplicaSet 2m43s deployment-controller Scaled up replica set nginx-deployment-7848d4b86f to 2
Normal ScalingReplicaSet 2m40s deployment-controller Scaled down replica set nginx-deployment-d6dcb985 to 2
Normal ScalingReplicaSet 2m40s deployment-controller Scaled up replica set nginx-deployment-7848d4b86f to 3
Normal ScalingReplicaSet 2m40s deployment-controller Scaled down replica set nginx-deployment-d6dcb985 to 1
Normal ScalingReplicaSet 2m40s deployment-controller Scaled up replica set nginx-deployment-7848d4b86f to 4
Normal ScalingReplicaSet 2m38s deployment-controller Scaled down replica set nginx-deployment-d6dcb985 to 0
解决方案
你得到 404 这意味着请求即将到来,直到你正在使用 nginx 或入口
现在您的入口可能有问题
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
spec:
rules:
- host: argo.corbe.net
http:
paths:
- backend:
serviceName: ningx
servicePort: 80
检查您正在使用的服务名称serviceName: ningx
。
它应该是nginx-service ingress 应该是这样的
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
spec:
rules:
- host: argo.corbe.net
http:
paths:
- backend:
serviceName: nginx-service
servicePort: 80
整个流程将类似于:DNS > ingress > service (nginx-service) > deployment (nginx-deployment) or pod replicas.
推荐阅读
- entity-framework - 连接到 AWS 时表“xxxx.AspNetUsers”不存在
- ruby-on-rails - 如何在 Kubernetes 中运行延迟作业?
- c# - 为什么编译器不能通过内联优化闭包变量?
- php - php中来自json数组的数据
- javascript - 如何使用 Pug 将 Markdown 文件目录转换为 HTML 页面?
- angular - Angular:img src 中的“警告:清理不安全的 URL 值”
- mongodb - Clojure - 如何在单元测试中正确挂载状态
- android - Android Studio Darcula 主题错误
- javascript - 带有字符“\”的 json 错误(意外标记)
- javascript - 模拟显示为未定义