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

k8s---ingress實現(xiàn)https代理訪問

這篇具有很好參考價值的文章主要介紹了k8s---ingress實現(xiàn)https代理訪問。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

預知

ingress實現(xiàn)https代理

創(chuàng)建證書 密鑰

secrets保存密鑰信息,部署pod時把secrets掛載到pod

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

[root@master01 ~]# openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out.crt -subj "/CN=nginxzzr/O=nginxzzr"

req:生成證書文件的請求
x509:生成x.509自簽名的證書
-sha256:表示生成的密鑰不加密
-day 365:證書有效期365天
-newkey rsa:2048 :RSA密鑰對,長度2048位。
-keyout tls.key -out.crt:密鑰文件key   證書文件:crt

-subj "/CN=nginxzzr/O=nginxzzr":主題 , CN  common  name  O;organization


kubectl create secret tls tls-secret --key=tls.key --cert=tls.crt
創(chuàng)建secret

創(chuàng)建deployment,service,ingress的yaml資源

apiVersion: apps/v1
kind: metadata
metadata:
  name:  nginx-https
  labels:  
    app:  https
spec:
  replicas:  3
  selector:
    matchLabels:
      app: https
  template:
    metadata:
      labels:
        app: https
    spec:
      containers:
        - name: nginx
          image: nginx:1.22
---
apiVersion:  v1
kind: Service
metadata:
  name:  nginx-svc
spec:  
  ports:  
    - port:  80
      targetPort:  80
      protocol:  TCP
  selector:
    app: https
---
apiVersion:  networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress-https
spec:
  tls:
    - hosts:  
      - www.123zzr.com
      secretName:  tls-secret
#加密的配置保存在ingress當中(請求---ingress-controller---ingress----service)。所以在ingress模塊將加密文件導入
#在代理進行時,就要先驗證密鑰對,然后再把請求轉(zhuǎn)發(fā)到service對應的pod
  rules:
    - host: www.123zzr.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: nginx-svc
              port: 
                number: 80
                
wq
kubectl apply -f ingress-https.yaml
kubectl get pod
kubectl get svc -n ingress-nginx
vim /etc/hosts

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

也可以實現(xiàn)負載均衡。

nginx的登錄賬號認證

cd /opt
cd https
mkdir basic-auth
cd basic-auth
yum -y install httpd
htpasswd -c auth zzr 
123456
123456
//認證的文件名只能叫auth

ls
認證文件已經(jīng)生成

kubectl create secret generic basic-auth --from-file=auth
kubectl describle secrets basic-auth

vim ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-auth
  annotations:
#開啟認證模塊
    nginx.ingress.kubernets.io/auth-type: basic
#設置認證類型位basic,這是k8s自帶的認證加密模塊
    nginx.ingress.kubernets.io/auth-secret: basic-auth
#把認證的加密模塊導入ingress當中
    nginx.ingress.kubernets.io/auth-realm: 'Authentication Required -zzr'
spec:
  rules:
  - hosts: www.zzr.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
          name: nginx-svc
          port:
            number: 80

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

nginx重寫

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-rewrite
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: https://www.123zzr.com:32396
spec:
  rules:
  - host: www.zzr.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-svc
            port:
              number: 80
              
vim /etc/hosts

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

nginx-ingress-controller

traefik ingress controller

traefik 是一個為了讓部署微服務更加快捷而誕生的一個http反向代理,負載均衡。

traefik設計時就能夠?qū)崟r的和k8s API交互,可以感知后端service和pod的變化,還可以自動更新配置和重載。

pod內(nèi) nginx 80 8081

traefik的部署方式:

daemonset

特點:優(yōu)點,每個節(jié)點都會部署一個traefik,節(jié)點感知,可以自動發(fā)現(xiàn),更新容器的配置。不需要手動重載。

缺點:資源占用,大型集群中,daemonset可能會運行多個traefik的實力,尤其是節(jié)點上不需要大量容器的情況下。沒有辦法擴縮容。

部署對外集群:對外的業(yè)務會經(jīng)常變更,daemonset可以更好的,自動的發(fā)現(xiàn)服務配置變更

deployment:

優(yōu)點:集中辦公控制,可以使用少量的實例來運行處理整個集群的流量。更容易升級和維護。

缺點:deployment的負載均衡不會均分到每個節(jié)點。

無法感知容器內(nèi)部配置的變化,所以得手動更新。

部署對內(nèi)集群:對內(nèi)的相對穩(wěn)定,更新和變化也比較少,適合deployment

tarffic-type:internal 對內(nèi)服務

traffic-type:external 對外服務

nignx-ingress和traefik-ingress區(qū)別

nginx-ingress 相對較慢

工作原理都一樣,都是7層代理,都可以動態(tài)的更新配置,都可以自動發(fā)現(xiàn)服務。

traefik-ingress自動更新的重載更快,更方便

traefik的并發(fā)能力只有nginx-ingress的60%

演示deployment

cd /opt
mkdir traefik
cd traefik
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
//daemonset

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/ui.yaml


kubectl apply -f traefik-rbac.yaml
kubectl apply -f traefik-ds.yaml
kubectl apply -f ui.yaml


vim traefik-
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-traefik
  labels: 
    nginx: traefik
spec:
  replicas: 3
  selector:
    matchLabels:
      nginx: traefik
  template:
    metadata:
      labels:
        nginx: traefik
    spec:
      containers:
        - name: nginx
          image: nginx:1.22
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-traefik-svc1
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    nginx: traefik
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-traefik-test1
spec:
  rules:
    - host: www.zzrhj.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: nginx-traefik-svc1
              port:
                number: 80
wq

kubectl apply -f traefik

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

daemonset演示

cd /opt
mkdir traefik
cd traefik
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
//daemonset

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/ui.yaml


kubectl apply -f traefik-rbac.yaml
kubectl apply -f traefik-ds.yaml
kubectl apply -f ui.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-traefik
  labels:
    nginx: traefik
spec:
  replicas: 3
  selector:
    matchLabels:
      nginx: traefik
  template:
    metadata:
      labels:
        nginx: traefik
    spec:
      containers:
        - name: nginx
          image: nginx:1.22
          volumeMounts:
          - name: nginx-conf
            mountPath: /etc/nginx
      volumes:
      - name: nginx-conf
        configMap:
          name: nginx-conf

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-traefik-svc1
spec:
  ports:
    - port: 81
      targetPort: 81
      protocol: TCP
  selector:
    nginx: traefik

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-traefik-test1
spec:
  rules:
    - host: www.abcabc.com
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: nginx-traefik-svc1
              port:
                number: 81

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

k8s---ingress實現(xiàn)https代理訪問,kubernetes,容器,云原生

ingress總結(jié)

ingress的類型:

nginx-ingress-controller

traefik-ingress-controller

這兩個都是開源的控制器

nginx-ingress-controller控制器三種模式:

deployment+loadbalancer:公有云提供負載均衡的公網(wǎng)地址

daemonset+hostnetwork+nodeselector:和節(jié)點服務共享網(wǎng)絡,一個節(jié)點一個controller pod。使用宿主機的端口性能最好,適合大并發(fā)

deployment+nodeport:最常見也是最常用,也是最簡單的方法。但是性能不太好,多了一層nat地址轉(zhuǎn)發(fā)。

適用于高并發(fā)、大集群使用

traefik-ingress-controller控制器模式:

daemonset:對外,開源自動更新容器配置。使用hostnetwork模式 使用節(jié)點網(wǎng)絡

deployment:對內(nèi) 無法自動更新配置。使用nodeport模式。

適用于小集群
?

https:

1.生成證書,密鑰

2.創(chuàng)建secret,保存證書和密鑰

3.創(chuàng)建ingress把secret導入。

加密認證:

  1. htpasswd -c auth:認證文件只能是auth

  2. 創(chuàng)建ingress時指定認證的類型、導入密鑰文件、最后加上密鑰信息

  3. 定義ingress的規(guī)則

  4.   annotations:
    #開啟認證模塊的配置
        nginx.ingress.kubernetes.io/auth-type: basic
    #設置認證類型為basic。是k8s自帶的認證加密模塊
        nginx.ingress.kubernetes.io/auth-secret: basic-auth
    #把認證的加密模塊導入到ingress當中
        nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required-zyg'
    #設置認證窗口的提示信息。

nginx重定向

在指定的ingres文件當中聲明的url都會跳轉(zhuǎn)到這個地址文章來源地址http://www.zghlxwxcb.cn/news/detail-804059.html

    nginx.ingress.kubernetes.io/rewrite-target: https://www.123ccc.com:30416
#在指定的ingres文件當中聲明的url都會跳轉(zhuǎn)到這個地址

到了這里,關(guān)于k8s---ingress實現(xiàn)https代理訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • k8s中部署nginx-ingress實現(xiàn)外部訪問k8s集群內(nèi)部服務

    k8s中部署nginx-ingress實現(xiàn)外部訪問k8s集群內(nèi)部服務

    k8s通過nginx-ingress實現(xiàn)集群外網(wǎng)訪問功能 1.1 ingress 工作原理 step1:ingress contronler通過與k8s的api進行交互,動態(tài)的去感知k8s集群中ingress服務規(guī)則的變化,然后讀取它,并按照定義的ingress規(guī)則,轉(zhuǎn)發(fā)到k8s集群中對應的service。 step2:而這個ingress規(guī)則寫明了哪個域名對應k8s集群中的

    2024年02月07日
    瀏覽(27)
  • K8s進階之網(wǎng)絡:pod內(nèi)不同容器、同節(jié)點不同pod通信、CNI插件、不同節(jié)點pod通信、Flannel容器網(wǎng)絡、Serivce連接外部網(wǎng)絡、服務發(fā)現(xiàn)、Nginx反向代理與域名、Ingress代理

    K8s進階之網(wǎng)絡:pod內(nèi)不同容器、同節(jié)點不同pod通信、CNI插件、不同節(jié)點pod通信、Flannel容器網(wǎng)絡、Serivce連接外部網(wǎng)絡、服務發(fā)現(xiàn)、Nginx反向代理與域名、Ingress代理

    Pod是Kubernetes中最小的可部署單元,它是一個或多個緊密關(guān)聯(lián)的容器的組合,這些容器共享同一個網(wǎng)絡命名空間和存儲卷,因此Pod中的 所有容器都共享相同的網(wǎng)絡命名空間和IP地址——PodIP ,所以在同一個Pod內(nèi)的容器間通信可以 通過localhost直接通信 。 k8s創(chuàng)建Pod時永遠都是首先

    2024年02月05日
    瀏覽(24)
  • K8s(Kubernetes)學習(六)——Ingress

    K8s(Kubernetes)學習(六)——Ingress

    什么是 Ingress Ingress 和 Service 區(qū)別 Ingress 控制器 Traefik 使用 Ingress Route的定義 1 簡介 https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/ Ingress 是一種 Kubernetes 資源類型,它允許在 Kubernetes 集群中暴露 HTTP 和 HTTPS 服務 。通過 Ingress,您可以將流量路由到不同的服務和端點,而

    2024年02月07日
    瀏覽(59)
  • 云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授權(quán)訪問&容器執(zhí)行

    云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授權(quán)訪問&容器執(zhí)行

    Kubernetes是一個開源的, 用于編排云平臺中多個主機上的容器化的應用,目標是讓部署容器化的應用能簡單并且高效的使用, 提供了應用部署,規(guī)劃,更新,維護的一種機制 。其核心的特點就是能夠自主的管理容器來保證云平臺中的容器按照用戶的期望狀態(tài)運行著,管理員可

    2024年02月08日
    瀏覽(31)
  • Kubernetes(k8s)使用ingress發(fā)布服務

    目錄 一.系統(tǒng)環(huán)境 二.前言 三.Kubernetes ingress簡介 四.Ingress vs NodePort vs LoadBalancer 五.安裝部署Nginx Ingress Controller控制器 六.使用Ingress來發(fā)布Kubernetes服務 6.1 創(chuàng)建3個pod 6.2 配置ingress規(guī)則發(fā)布服務 七.總結(jié) 本文主要基于Kubernetes1.21.9和Linux操作系統(tǒng)CentOS7.4。 服務器版本 Nginx Ingress C

    2024年02月08日
    瀏覽(23)
  • Kubernetes技術(shù)--k8s核心技術(shù) ingress

    1.引入 ? ? ? ?我們之前在部署應用(如nginx)的時候,如果你需要外部進行訪問,使用的是service中的nodePort方式進行對外的暴露。然后外部就可以使用ip + 端口號來進行訪問部署應用。 ? ? ? ? 其實這一種方式是存在著較為明顯的缺陷,每一個端口你只能夠使用一次,一個端口

    2024年02月10日
    瀏覽(25)
  • 【kubernetes系列】k8s ingress配置websocket支持

    【kubernetes系列】k8s ingress配置websocket支持

    背景:公司的后端同事在代碼調(diào)試過程中需要上傳一個文件,調(diào)用的websocket接口 瀏覽器上傳文件一直卡主,通過瀏覽器調(diào)試模式發(fā)現(xiàn)無法正常獲取websocket的連接 websocket的接口訪問可以通過wscat命令(需單獨安裝)測試。 瀏覽器訪問報錯如下: WebSocket connection to ‘ws://*******

    2024年02月06日
    瀏覽(27)
  • Kubernetes(k8s)當中安裝并使用ingress暴露應用

    Kubernetes(k8s)當中安裝并使用ingress暴露應用

    當我們使用不同類型的服務來暴露應用的時候會遇到一下問題: LoadBalancer :當我們在使用LoadBalancer類型的Service暴露服務的時候,一般都需要占用一個公網(wǎng)或者是內(nèi)網(wǎng)IP地址。使用ingress我們就可以通過一個IP地址暴露多個服務。Ingress會根據(jù)客戶端輸入的不同的域名來確定我們

    2024年02月11日
    瀏覽(22)
  • 【一起來學kubernetes】7、k8s中的ingress詳解

    【一起來學kubernetes】7、k8s中的ingress詳解

    Ingress 是Kubernetes集群中的一種資源類型,用于實現(xiàn)用域名的方式訪問Kubernetes內(nèi)部應用。它為Kubernetes集群中的服務提供了入口,可以提供負載均衡、SSL終止和基于名稱的虛擬主機。在生產(chǎn)環(huán)境中常用的Ingress有 Treafik 、 Nginx 、 HAProxy 、 Istio 等?;靖拍钍窃贙ubernetes v 1.1版中添

    2024年02月05日
    瀏覽(26)
  • K8s的ingress-nginx配置https

    K8s的ingress-nginx配置https

    在另一臺機器上配置hosts解析www.yaoyao.com,然后訪問 curl --cacert tls.crt https://www.yaoyao.com:10443 這里的10443端口是ingress-nginx-controller服務暴露的nodeport端口

    2024年02月07日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包