ingress

ingress

1、ingress——deployment + nodeport

daemonset + hostnetwork

2、ingress——svc——deployment里面的pod

ingress的权限控制:

访问页面的时候,输入账号密码才可以访问页面。

[root@master01 ingress]# yum -y install httpd
[root@master01 ingress]# htpasswd -c auth zhailiming
#必须是auth
[root@master01 ingress]# kubectl create secret generic basic-auth --from-file=auth
[root@master01 ingress]# vim ingress-nginx1.yaml 
 58 metadata:
 59   name: nginx-daemon-ingree
 60   annotations:
 61     #设置认证的类型:
 62     nginx.ingress.kubernetes.io/auth-type: basic
 63     #设置认证的secret的名称:
 64     nginx.ingress.kubernetes.io/auth-secret: basic-auth
 65     #设置认证密码窗口的提示信息
 66     nginx.ingress.kubernetes.io/auth-realm: 'Hello'
[root@master01 ingress]# kubectl apply -f ingress-nginx1.yaml 

设置重定向:

[root@master01 ingress]# vim ingress-nginx1.yaml 
metadata:
  name: nginx-daemon-ingree
  annotations:   
   #设定重定向流量的目标连接
    nginx.ingress.kubernetes.io/rewrite-target: https://www.xy102.com

ingress的权限控制:

访问页面的时候,输入账号密码才可以访问页面。

basicAuth

traefik ingress controller

专门为了部署k8s微服务开发的http方向代理和负载均衡工具。

自动发现匹配的后端pod的变化,同时有可视化的页面

自动感知变化,实现服务的自动发现。

daemonset+hostnetwork 适用于大集群

deployment+nodeport 适用于内部访问,性能较低

ingress-traaefik 和 ingress-nginx之间的区别。

ingress-nginx 使用nginx作为前端的负载均衡,ingress-controller和k8s的api交互来实现后端服务器的发现,podip地址的变化。

动态实现nginx的配置修改。

ingress-traaefik: 本身就能够和k8s的api交互,感知后端service以及pod的变化。traefik更简单,更方便。

go语言写的,和k8s的兼容性更好。并发能力只有ingress-nginx的6成。

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-deployment.yaml
wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-rbac.yaml
wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-ds.yaml
wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/ui.yaml
​
[root@master01 traefik]# kubectl apply -f traefik-rbac.yaml  
[root@master01 traefik]# kubectl apply -f traefik-deployment.yaml 
[root@master01 traefik]# kubectl apply -f ui.yaml 
​
[root@master01 traefik]# kubectl get svc -n kube-system 
NAME                      TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                       AGE
kube-dns                  ClusterIP   10.96.0.10     <none>        53/UDP,53/TCP,9153/TCP        8d
traefik-ingress-service   NodePort    10.96.82.99    <none>        80:32079/TCP,8080:30335/TCP   113s
traefik-web-ui            ClusterIP   10.96.18.158   <none>        80/TCP 
[root@master01 traefik]# vim traefik-nginx.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: nfs-client-storageclass
  resources:
    requests:
      storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-traefik
  labels:
    app1: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app1: nginx
  template:
    metadata:
      labels:
        app1: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.22
          ports:
            - containerPort: 80
          volumeMounts:
          - name: nfs-pvc
            mountPath: /usr/share/nginx/html
      volumes:
      - name: nfs-pvc
        persistentVolumeClaim:
          claimName: nfs-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-traefik-svc
spec:
  type: ClusterIP
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app1: nginx
​
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-traefik-ingree
  annotations:
spec:
  rules:
  - host: www.xy102.com
    http:
      paths:
      - path: /
        pathType: Prefix
#前缀匹配,可以匹配/ /test1 /test1/test2
        backend:
#声明匹配的svc的名称————pod
          service:
            name: nginx-traefik-svc
            port:
              number: 80
[root@master01 traefik]# kubectl apply -f traefik-nginx.yaml 

总结:

ingress:对外提供访问

ingress——根据servicename选择sevic——service把请求根据匹配的标签转发到pod

支持http 80 https 443

deployment+nodeport

daemonset+hostnetwork

ingress-nginx

ingress-traefik

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、付费专栏及课程。

余额充值