国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s---對(duì)外服務(wù) ingress

這篇具有很好參考價(jià)值的文章主要介紹了k8s---對(duì)外服務(wù) ingress。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

目錄

目錄

ingress與service

ingress的組成

ingress-controller:

ingress暴露服務(wù)的方式

2.方式二:DaemonSet+hostnetwork+nodeSelector

DaemonSet+hostnetwork+nodeSelector如何實(shí)現(xiàn)

3.deployment+NodePort:

虛擬主機(jī)的方式實(shí)現(xiàn)http代理

總結(jié)

deploymentit+loadbalancer:

daemonset+hostnetwork+nodeselector:

deployment+nodeport:


ingress與service

service作用體現(xiàn)在兩個(gè)方面:

1.集群內(nèi)部:不斷跟蹤pod的變化,更新endpoint中的pod對(duì)象,基于pod的IP地址不斷變化的一種服務(wù)發(fā)現(xiàn)機(jī)制。

2.集群外部:類似負(fù)載均衡,把流量IP+端口,不涉及轉(zhuǎn)發(fā)url(http https),把請(qǐng)求轉(zhuǎn)發(fā)到pod當(dāng)中。

service:

nodeport:容器端口---service端口---nodeport,每個(gè)節(jié)點(diǎn)都會(huì)有一個(gè)端口被打開(kāi)(30000-32767)

IP+端口:節(jié)點(diǎn)IP+30000-32767實(shí)現(xiàn)負(fù)載均衡

loadbalancer:云平臺(tái)上的一種service服務(wù)。云平臺(tái)提高負(fù)載均衡的IP地址。

externalname:域名映射。

通過(guò)ingress基于域名映射,把url(http,https)請(qǐng)求轉(zhuǎn)發(fā)到service,再由service把請(qǐng)求轉(zhuǎn)發(fā)到每一個(gè)pod。

ingress只要一個(gè)或者是少量的公網(wǎng)IP或者LB,可以把多個(gè)http請(qǐng)求暴露到外網(wǎng),七層反向代理。

ingress是service的service,是一組基于域名和URL路徑,把一個(gè)或者多個(gè)請(qǐng)求(基于域名和URL的請(qǐng)求)轉(zhuǎn)發(fā)到service的一種規(guī)則。

先是七層代理(ingress)----四層代理(service)---pod(nginx)

ingress的組成

ingress是一個(gè)api對(duì)象,通過(guò)yaml文件來(lái)進(jìn)行配置。

ingress的作用-->定義請(qǐng)求如何轉(zhuǎn)發(fā)到service的規(guī)則。

ingress通過(guò)http和https暴露集群內(nèi)部的service,給service提供一個(gè)外部的url,負(fù)載均衡,ssl/tls(https)的能力,實(shí)現(xiàn)一個(gè)基于域名的負(fù)載均衡。

ingress-controller:

具體的實(shí)現(xiàn)反向代理和負(fù)載均衡的程序。對(duì)ingress定義的規(guī)則進(jìn)行解析,根據(jù)ingress的配置規(guī)則進(jìn)行請(qǐng)求的轉(zhuǎn)發(fā)。

ingress-controller不是K8s自帶的組件功能,ingress-controller一個(gè)統(tǒng)稱。

nginx ingress controller traefik都是ingress-controller,開(kāi)源。

ingress暴露服務(wù)的方式

1.deployment+LoadBalancer模式,ingress部署在公有云。會(huì)ingress配置文件里面會(huì)有一個(gè)type,type:loadbalancer。

公有云平臺(tái)會(huì)為這個(gè)loadbalancer的service創(chuàng)建一個(gè)負(fù)載均衡器。綁定一個(gè)公網(wǎng)地址。

通過(guò)域名指向這個(gè)公網(wǎng)地址就可以實(shí)現(xiàn)集群對(duì)外暴露。

2.方式二:DaemonSet+hostnetwork+nodeSelector

DaemonSet:在每個(gè)節(jié)點(diǎn)都會(huì)創(chuàng)建一個(gè)pod。

hostnetwork:pod共享節(jié)點(diǎn)主機(jī)的網(wǎng)絡(luò)命名空間。容器內(nèi)直接使用節(jié)點(diǎn)主機(jī)的IP+端口。pod中的容器可以直接訪問(wèn)主機(jī)上的網(wǎng)絡(luò)資源。

nodeSelector:根據(jù)標(biāo)簽來(lái)選擇部署的節(jié)點(diǎn)。nginx-ingress-controller部署的節(jié)點(diǎn)。

缺點(diǎn):直接利用節(jié)點(diǎn)主機(jī)的網(wǎng)絡(luò)和端口,一個(gè)node只能部署一個(gè)controller的pod。比較適合大并發(fā)的生產(chǎn)環(huán)境。性能是最好的。

解析出來(lái)的域名到ingress-controller,再到Ingress的配置,根據(jù)標(biāo)簽service匹配來(lái)對(duì)容器進(jìn)行發(fā)現(xiàn)和監(jiān)控。controller實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)和負(fù)載均衡。

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

ingress-controller的安裝

wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml

DaemonSet+hostnetwork+nodeSelector如何實(shí)現(xiàn)

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

查看端口,只有node02有

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany:
  storageClassName: nfs-client-storageclass
  resources:
    request:
      storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-app
  labels:
    app: nginx1
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx1
  template:
    metadata:
      labels:
        app: nginx1
    spec:
      containers:
        - name: nginx
          image: nginx:1.22
          volumeMounts:
          - name: nfs-pvc
            mountPath: /usr/share/nginx/html
      volumes:
      - name: nfs-pvc
        persistentVolumeClaim:
          claimName: nfs-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-app-svc
spec:
  ports:
  - protocol: Tcp
    port: 80
    targetPort: 80
  selector:
    app: nginx1
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-app-ingress
spec:
  rules:
  - host: www.test1.com
    http:
      path: /
      pathType: Prefix
#根據(jù)前綴進(jìn)行匹配。以/為開(kāi)頭都能匹配

3.deployment+NodePort:

host--->ingress的配置找到Pod--->controller--->請(qǐng)求發(fā)到pod

nodeport---controller---ingress---service---pod

nodeport暴露端口的方式是最簡(jiǎn)單的方法,nodeport 多了一層nat(地址轉(zhuǎn)換),并發(fā)量大的對(duì)性能會(huì)有一定影響。內(nèi)部都會(huì)用nodeport

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

---
現(xiàn)在執(zhí)行這個(gè)yaml文件,會(huì)生成一個(gè)service,在ingress-nginx這個(gè)命名空間生成一個(gè)service,所有的controller的請(qǐng)求都會(huì)從這個(gè)定義的service的nodeport的端口,把請(qǐng)求轉(zhuǎn)發(fā)到自定義的service的Pod

ingress--nodeport的端口---service---pod

入口:nodeport不再是創(chuàng)建pod的deployment傳附件的,是ingress的service創(chuàng)建的

數(shù)據(jù)流向圖

k8s---對(duì)外服務(wù) ingress,K8s,kubernetes,容器,云原生

虛擬主機(jī)的方式實(shí)現(xiàn)http代理

通過(guò)ingress的方式實(shí)現(xiàn):一個(gè)ingress可以訪問(wèn)不同的主機(jī)

vim pod1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment1
  labels:
    test: nginx1
spec:
  replicas: 1
  selector:
    matchLabels:
      test: nginx1
  template:
    metadata:
      labels:
        test: nginx1
    spec:
      containers:
        - name: nginx1
          image: nginx:1.22
---
apiVersion: v1
kind: Service
metadata:
  name: svc-1
spec: 
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    test: nginx1

kubectl apply -f pod1.yaml




vim pod2.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment2
  labels:
    test: nginx2
spec:
  replicas: 1
  selector:
    matchLabels:
      test: nginx2
  template:
    metadata:
      labels:
        test: nginx2
    spec:
      containers:
        - name: nginx1
          image: nginx:1.22
---
apiVersion: v1
kind: Service
metadata:
  name: svc-2
spec: 
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    test: nginx2
wq

kubectl apply -f pod2.yaml








vim pod-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress1
spec:
  rules:
    - host: www.test.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: svc-1
            port:
              number:80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress2
spec:
  rules:
    - host: www.test2.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: svc-2
            port:
              number:80
              
              
wq
kubectl apply -f pod-ingress.yaml

vim /etc/hosts

curl www.


wq

總結(jié)

ingress的核心組件

nginx-ingress-controller

traefik

都是開(kāi)源的ingress-controller

deploymentit+loadbalancer:

需要云平臺(tái)提供一個(gè)負(fù)載均衡的公網(wǎng)地址,公有云上做($$$$$$)

daemonset+hostnetwork+nodeselector:

指定節(jié)點(diǎn)部署controller,缺點(diǎn)是和宿主機(jī)共享網(wǎng)絡(luò),只能是一個(gè)controller的pod。

hostnetwork會(huì)和宿主機(jī)共享網(wǎng)絡(luò)

deployment+nodeport:

最常用,最常見(jiàn),最簡(jiǎn)單的方式。

集中一個(gè)nodeport端口,所有的ingress的請(qǐng)求都會(huì)轉(zhuǎn)發(fā)到nodeport,然后把service把流量轉(zhuǎn)到pod。

一個(gè)ingress的nodeport,可以實(shí)現(xiàn)訪問(wèn)多個(gè)虛擬主機(jī)。

和nginx一樣。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-813635.html

到了這里,關(guān)于k8s---對(duì)外服務(wù) ingress的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s的對(duì)外服務(wù)--ingress

    k8s的對(duì)外服務(wù)--ingress

    service作用體現(xiàn)在兩個(gè)方面 1、集群內(nèi)部 不斷跟蹤pod的變化,更新endpoint中的pod對(duì)象,基于pod的IP地址不斷變化的一種服務(wù)發(fā)現(xiàn)機(jī)制 2、集群外部 類似負(fù)載均衡器,把流量ip+端口,不涉及轉(zhuǎn)發(fā)url(http,https),把請(qǐng)求轉(zhuǎn)發(fā)到pod nodePort:容器端口----service端口----nodePort,設(shè)定了no

    2024年01月20日
    瀏覽(49)
  • k8s的對(duì)外服務(wù)---ingress

    k8s的對(duì)外服務(wù)---ingress

    service的作用體現(xiàn)在兩個(gè)方面: 集群內(nèi)部:不斷追蹤pod的變化。他會(huì)更新endpoint中的pod對(duì)象,基于pod的IP地址不斷變化的一種服務(wù)發(fā)現(xiàn)機(jī)制。 集群外部:類似負(fù)載均衡器,把流量IP+端口,不涉及轉(zhuǎn)發(fā)url(http、https)。把請(qǐng)求轉(zhuǎn)發(fā)到pod當(dāng)中。 service有四種類型: ClusterIP:創(chuàng)建servic

    2024年01月20日
    瀏覽(21)
  • k8s的對(duì)外服務(wù)ingress

    k8s的對(duì)外服務(wù)ingress

    1、service的作用體現(xiàn)在兩個(gè)方面 (1)集群內(nèi)部:不斷跟蹤pod的變化,更新deployment中的pod對(duì)象,基于pod的ip地址不斷變化的一種服務(wù)發(fā)現(xiàn)機(jī)制 (2)集群外部:類似于負(fù)載均衡器,把流量ip+端口,不涉及轉(zhuǎn)發(fā)url(http/https),把請(qǐng)求轉(zhuǎn)發(fā)到pod當(dāng)中 2、service nodeport 容器端口——s

    2024年01月22日
    瀏覽(20)
  • k8s---ingress對(duì)外服務(wù)(traefik)

    k8s---ingress對(duì)外服務(wù)(traefik)

    目錄 ingress的證書(shū)訪問(wèn) traefik traefik的部署方式: deamonset deployment nginx-ingress與traefix-ingress相比較 nginx-ingress-controller ui訪問(wèn) deployment部署 ingress實(shí)現(xiàn)https代理訪問(wèn): 需要證書(shū)和密鑰 創(chuàng)建證書(shū) 密鑰 secrets 保存密鑰信息,部署pod時(shí)把secrets掛載到pod 創(chuàng)建密鑰和證書(shū) nginx的登錄賬戶認(rèn)證

    2024年01月19日
    瀏覽(47)
  • k8s---ingress對(duì)外服務(wù)(ingress-controller)

    k8s---ingress對(duì)外服務(wù)(ingress-controller)

    k8s的對(duì)外服務(wù),ingress service作用現(xiàn)在兩個(gè)方面: 1、集群內(nèi)部:不斷跟蹤的變化,更新endpoint中的pod對(duì)象,基于pod的ip地址不斷變化的一種服務(wù)發(fā)現(xiàn)機(jī)制。 2、集群外部:類似于負(fù)載均衡器,把流量(ip+端口),不涉及轉(zhuǎn)發(fā)url(http https),把請(qǐng)求轉(zhuǎn)發(fā)到pod當(dāng)中。 service: NodePo

    2024年01月19日
    瀏覽(21)
  • k8s svc通過(guò)externalIPs并結(jié)合Keepalived對(duì)外暴露服務(wù)

    Kubemetes 的 Service需要對(duì)集群外暴露,可以通過(guò)NodePort、Ingress和LoadBalancer,其中 NodePort:需要預(yù)先知道k8s集群節(jié)點(diǎn)的IP地址,在使用時(shí)需指定node的ip(這樣配置存在單點(diǎn)故障); Ingress:實(shí)現(xiàn)的是HTTP(S)負(fù)載均衡器,只能代理七層; LoadBalancer:需要通過(guò)云服務(wù)商提供的負(fù)載均衡器

    2024年02月05日
    瀏覽(55)
  • k8s 對(duì)外服務(wù)之 ingress|ingress的對(duì)外暴露方式|ingress http,https代理|ingress nginx的認(rèn)證,nginx重寫(xiě)

    k8s 對(duì)外服務(wù)之 ingress|ingress的對(duì)外暴露方式|ingress http,https代理|ingress nginx的認(rèn)證,nginx重寫(xiě)

    service的作用體現(xiàn)在兩個(gè)方面,對(duì)集群內(nèi)部,它不斷跟蹤pod的變化,更新endpoint中對(duì)應(yīng)pod的對(duì)象,提供了ip不斷變化的pod的服務(wù)發(fā)現(xiàn)機(jī)制;對(duì)集群外部,他類似負(fù)載均衡器,可以在集群內(nèi)外部對(duì)pod進(jìn)行訪問(wèn)。 在Kubernetes中,Pod的IP地址和service的ClusterIP僅可以在集群網(wǎng)絡(luò)內(nèi)部使用,

    2024年02月10日
    瀏覽(27)
  • 【Kubernetes】Kubernetes對(duì)外服務(wù)之Ingress

    【Kubernetes】Kubernetes對(duì)外服務(wù)之Ingress

    ??service的作用體現(xiàn)在兩個(gè)方面,對(duì)集群內(nèi)部,它不斷跟蹤pod的變化,更新endpoint中對(duì)應(yīng)pod的對(duì)象,提供了ip不斷變化的pod的服務(wù)發(fā)現(xiàn)機(jī)制;對(duì)集群外部,他類似負(fù)載均衡器,可以在集群內(nèi)外部對(duì)pod進(jìn)行訪問(wèn)。 ??在Kubernetes中,Pod的IP地址和service的ClusterIP僅可以在集群網(wǎng)絡(luò)內(nèi)

    2024年02月12日
    瀏覽(21)
  • 多服務(wù)器對(duì)外提供一個(gè)浮動(dòng)ip

    淺調(diào)研了下浮動(dòng)ip方案。主要是用來(lái)做高可用/災(zāi)備切換,同一時(shí)間只有一個(gè)服務(wù)器提供服務(wù)。 無(wú)論是什么方案,都要解決這三個(gè)問(wèn)題: 如何配置浮動(dòng)ip 如何實(shí)現(xiàn)故障檢測(cè) 如何切換浮動(dòng)ip https://blog.csdn.net/helloworld_9/article/details/133799465 主從上網(wǎng)卡配置浮動(dòng)ip;利用crontab自動(dòng)執(zhí)行

    2024年02月20日
    瀏覽(21)
  • 魔獸世界335服務(wù)端架設(shè)對(duì)外網(wǎng)開(kāi)放的步驟

    警告:在沒(méi)有網(wǎng)絡(luò)安全防護(hù)措施或基礎(chǔ)知識(shí)的情況下,開(kāi)放端口可能造成被黑客入侵、流量攻擊、破壞數(shù)據(jù)、資料泄露等情況的發(fā)生。在你選擇開(kāi)放端口時(shí),視為已經(jīng)充分了解可能發(fā)生的后果、危害,清楚自己在做什么,并且自己將對(duì)此承擔(dān)一切后果! 還有這不是細(xì)致到手把

    2024年02月10日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包