欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > ingress

ingress

2025/5/10 6:36:43 来源:https://blog.csdn.net/m0_71178834/article/details/142141511  浏览:    关键词: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-ingree60   annotations:61     #设置认证的类型:62     nginx.ingress.kubernetes.io/auth-type: basic63     #设置认证的secret的名称:64     nginx.ingress.kubernetes.io/auth-secret: basic-auth65     #设置认证密码窗口的提示信息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-ingreeannotations:   #设定重定向流量的目标连接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:- ReadWriteManystorageClassName: nfs-client-storageclassresources:requests:storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-traefiklabels:app1: nginx
spec:replicas: 3selector:matchLabels:app1: nginxtemplate:metadata:labels:app1: nginxspec:containers:- name: nginximage: nginx:1.22ports:- containerPort: 80volumeMounts:- name: nfs-pvcmountPath: /usr/share/nginx/htmlvolumes:- name: nfs-pvcpersistentVolumeClaim:claimName: nfs-pvc
---
apiVersion: v1
kind: Service
metadata:name: nginx-traefik-svc
spec:type: ClusterIPports:- protocol: TCPport: 80targetPort: 80selector:app1: nginx
​
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: nginx-traefik-ingreeannotations:
spec:rules:- host: www.xy102.comhttp:paths:- path: /pathType: Prefix
#前缀匹配,可以匹配/ /test1 /test1/test2backend:
#声明匹配的svc的名称————podservice:name: nginx-traefik-svcport: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词