Nginx 我能';无法获得入口服务工作的基本示例
我正在为一个面向nginx吊舱的入口服务的非常基本的示例而挣扎。每当我尝试访问我的示例站点时,我都会得到以下简单的文本输出,而不是默认的nginx页面:Nginx 我能';无法获得入口服务工作的基本示例,nginx,kubernetes,k3s,Nginx,Kubernetes,K3s,我正在为一个面向nginx吊舱的入口服务的非常基本的示例而挣扎。每当我尝试访问我的示例站点时,我都会得到以下简单的文本输出,而不是默认的nginx页面: 404 page not found 以下是我正在使用的部署: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 4 selector: matchLa
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获得吊舱-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>
NAME READY STATUS重新启动老化IP节点指定节点就绪门
nginx-deployment-d6dcb985-942cz 1/1运行0 8h 10.42.0.17 k3s-1
nginx-deployment-d6dcb985-d7v69 1/1运行0 8h 10.42.0.18 k3s-1
nginx-deployment-d6dcb985-dqbn9 1/1运行0 8h 10.42.1.26 k3s-2
nginx-deployment-d6dcb985-vpf79 1/1运行0 8h 10.42.1.25 k3s-2
k3s kubectl-o全方位获取服务:
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
NAME TYPE CLUSTER-IP EXTERNAL-IP端口年龄选择器
kubernetes ClusterIP 10.43.0.1 443/TCP 5d
nginx服务群集IP 10.43.218.234 80/TCP 8h应用程序=nginx
k3s kubectl-o宽通道入口:
NAME CLASS HOSTS ADDRESS PORTS AGE
nginx-ingress <none> argo.corbe.net 207.148.25.119 80 8h
NAME类主机地址端口年龄
nginx入口argo.corbe.net 207.148.25.119 80 8h
k3s kubectl描述部署nginx部署:
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
Name:nginx部署
名称空间:默认值
CreationTimestamp:2021年2月22日星期一15:19:07+0000
标签:app=nginx
注释:deployment.kubernetes.io/revision:2
选择器:app=nginx
副本:需要4份|更新4份|共4份|可用4份|不可用0份
策略类型:RollingUpdate
最小就绪秒:0
滚动更新策略:最多25%不可用,最多25%喘振
Pod模板:
标签:app=nginx
容器:
nginx:
图片:nginx
端口:8080/TCP
主机端口:0/TCP
环境:
挂载:
卷数:
条件:
类型状态原因
---- ------ ------
可用真最小值ReplicasAvailable
正在进行的True NewReplicateSetAvailable
旧复制集:
NewReplicaSet:nginx-deployment-7848d4b86f(创建了4/4个副本)
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
正常扩展复制集2m43s部署控制器将复制集nginx-deployment-7848d4b86f扩展为1
正常扩展复制集2m43s部署控制器将复制集nginx-deployment-d6dcb985缩减为3
正常扩展复制集2m43s部署控制器将复制集nginx-deployment-7848d4b86f扩展为2
正常缩放复制集2m40s部署控制器将复制集nginx-deployment-d6dcb985缩小为2
正常扩展复制集2m40s部署控制器将复制集nginx-deployment-7848d4b86f扩展到3
正常缩放复制集2m40s部署控制器将复制集nginx-deployment-d6dcb985缩小为1
正常扩展复制集2m40s部署控制器将复制集nginx-deployment-7848d4b86f扩展到4
正常缩放复制集2m38s部署控制器将复制集nginx-deployment-d6dcb985缩小为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服务
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>ingres>service(nginx服务)>deployment(nginx部署)或pod副本。
默认情况下,nginx映像侦听端口80上的连接
$ kubectl run --image nginx
$ kubectl exec -it nginx -- bash
root@nginx:/# apt update
**output hidden**
root@nginx:/# apt install iproute2
**output hidden**
root@nginx:/# ss -lunpt
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 0 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1,fd=7))
tcp LISTEN 0 0 *:80 *:* users:(("nginx",pid=1,fd=8))
请注意,打开的是端口80,而不是端口8080。
这意味着您的服务配置错误,因为它转发到端口8080
您应该将目标端口设置为80,如下所示:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80 # <- HERE
作为备份,您可以使用不同名称的服务:
- backend:
serviceName: ningx
将其更改为服务的实际名称,如下所示:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
spec:
rules:
- host: argo.corbe.net
http:
paths:
- backend:
serviceName: ningx-service
servicePort: 80
应用更改,它现在应该可以工作了
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
namespace: default
spec:
rules:
- host: argo.corbe.net
http:
paths:
- backend:
serviceName: ningx-service
servicePort: 80