Ingress

目录

前言

部署

1、安装ingress-controller

2、查看svc、deploy、pod

3、创建ingress规则

4、查看规则

5、通过svc访问


前言

ingress就是为进入集群的请求提供路由规则的集合,可以给service提供集群外部访问的url、负载均衡、ssl终止、http路由等,为了配置这些ingress规则。集群管理员需要部署一个ingress controller,它监听ingress和service的变化,并根据规则配置负载均衡并提供访问入口。

部署


1、安装ingress-controller

[root@k8s-master ingress]# kubectl apply -f deploy.yaml 
namespace/ingress-nginx created
serviceaccount/ingress-nginx created
configmap/ingress-nginx-controller created
clusterrole.rbac.authorization.k8s.io/ingress-nginx created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
role.rbac.authorization.k8s.io/ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-nginx created
service/ingress-nginx-controller-admission created
service/ingress-nginx-controller created
deployment.apps/ingress-nginx-controller created
ingressclass.networking.k8s.io/nginx created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created
serviceaccount/ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
role.rbac.authorization.k8s.io/ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created

[root@k8s-master ingress]# kubectl apply -f backend.yaml 
deployment.apps/default-http-backend unchanged
service/default-http-backend unchanged

2、查看svc、deploy、pod

[root@k8s-master ingress]# kubectl get svc -n ingress-nginx 
NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.96.242.173   <none>        80:32389/TCP,443:32145/TCP   82m
ingress-nginx-controller-admission   ClusterIP   10.96.89.172    <none>        443/TCP                      82m

[root@k8s-master ingress]# kubectl get deploy -n ingress-nginx
NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
ingress-nginx-controller   1/1     1            1           82m

[root@k8s-master ingress]# kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS      RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create-4g5nt        0/1     Completed   0          82m   172.26.139.56   k8s-node     <none>           <none>
ingress-nginx-admission-patch-vbpkj         0/1     Completed   1          82m   172.28.82.199   k8s-master   <none>           <none>
ingress-nginx-controller-6587b84448-9znkt   1/1     Running     0          82m   172.28.82.198   k8s-master   <none>           <none>

3、创建ingress规则

[root@k8s-master ingress]# kubectl apply -f ingress-demo-app.yaml 
deployment.apps/hello-server created
deployment.apps/nginx-demo created
service/nginx-demo created
service/hello-server created
ingress.networking.k8s.io/ingress-host-bar created


[root@k8s-master ingress]# kubectl get pods -o wide
NAME                            READY   STATUS    RESTARTS   AGE     IP              NODE       NOMINATED NODE   READINESS GATES
hello-server-69684cb794-q7k6t   1/1     Running   0          9m29s   172.26.139.61   k8s-node   <none>           <none>
nginx-demo-5c4fd7fd55-h7w4c     1/1     Running   0          9m29s   172.26.139.62   k8s-node   <none>           <none>


[root@k8s-master ingress]# kubectl get svc
NAME           TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
hello-server   ClusterIP   10.96.92.51      <none>        8000/TCP   9m35s
kubernetes     ClusterIP   10.96.0.1        <none>        443/TCP    7d
nginx-demo     ClusterIP   10.101.182.112   <none>        8000/TCP   9m35s


[root@k8s-master ingress]# kubectl get ingress
NAME               CLASS   HOSTS                            ADDRESS        PORTS   AGE
ingress-host-bar   nginx   hello.yunqi.com,demo.yunqi.com   10.103.3.89   80      9m47s

4、查看规则

[root@k8s-master ingress]# kubectl describe ingress ingress-host-bar 
Name:             ingress-host-bar
Labels:           <none>
Namespace:        default
Address:          10.103.3.89
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host             Path  Backends
  ----             ----  --------
  hello.yunqi.com  
                   /   hello-server:8000 (172.26.139.61:9000)
  demo.yunqi.com   
                   /   nginx-demo:8000 (172.26.139.62:80)
Annotations:       <none>
Events:
  Type    Reason  Age                 From                      Message
  ----    ------  ----                ----                      -------
  Normal  Sync    51s (x2 over 111s)  nginx-ingress-controller  Scheduled for sync


5、通过svc访问

[root@k8s-master ingress]# curl 10.96.92.51:8000
Hello World!

[root@k8s-master ingress]# curl 10.101.182.112:8000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

相关资源:https://cloud.tencent.com/developer/article/2196289 

Ingress 502错误是指在访问Ingress时服务器返回的错误代码。具体表示服务器出现了一些问题,无法提供所请求的页面。 当我们在浏览器访问一个网站时,我们的请求首先会发送到服务器,服务器会进行处理并返回响应给我们的浏览器。在这个过程中,如果服务器在处理我们的请求时遇到了错误,就会返回相应的错误代码。而Ingress 502错误代码则意味着服务器在处理我们的请求时遇到了问题。 Ingress 502错误可能是由于以下几个原因引起的: 1. 服务器过载:服务器处理请求的速度没有跟上请求的速度,导致一些请求无法正常处理,从而返回502错误。 2. 后端服务器故障:服务器上的后端应用程序或数据库等出现了故障,导致服务器无法处理请求。 3. 代理服务器问题:在使用代理服务器时,代理服务器本身出现了问题,无法正常将请求转发到目标服务器。 对于用户而言,遇到Ingress 502错误时,我们建议可以尝试以下几个解决方法: 1. 刷新页面:有时候502错误是暂时的,刷新页面可能会解决问题。 2. 等待一段时间:如果是服务器过载导致的错误,可以等待一段时间后再次尝试访问。 3. 检查网络连接:检查自己的网络连接是否正常,尝试连接其他网站,以确定是否是自己的网络问题。 4. 与网站管理员联系:如果以上方法都无效,可以尝试联系网站管理员报告问题,让其能够及时处理服务器问题。 总的来说,Ingress 502错误代码表示服务器无法正常处理请求,可能是由于服务器过载或故障等原因引起的。需要用户尝试刷新页面、等待一段时间、检查网络连接或与网站管理员联系来解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值