国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

五分鐘K8S實戰-使用Ingress

網絡 網絡優化
Ingress 通常是充當網關的作用,后續我們在使用 Istio 時,也可以使用 Istio 所提供的控制器來替換掉 Ingress-nginx,可以更方便的管理內外網流量。

背景

技術、生活、觀點、原創。 原創公眾號; 主要關注 Go、JVM、并發、分布式、網絡等相關技術。

前兩章中我們將應用部署到了 k8s 中,同時不同的服務之間也可以通過 service 進行調用,現在還有一個步驟就是將我們的應用暴露到公網,并提供域名的訪問。

這一步類似于我們以前配置 Nginx 和綁定域名,提供這個能力的服務在 k8s 中成為 Ingress。

通過這個描述其實也能看出 Ingress 是偏運維的工作,但也不妨礙我們作為研發去了解這部分的內容;了解整個系統是如何運轉的也是研發應該掌握的技能。

安裝 Ingress 控制器

在正式使用 Ingress 之前需要給 k8s 安裝一個 Ingress 控制器,我們這里安裝官方提供的 Ingress-nginx 控制器。

當然還有社區或者企業提供的各種控制器:

圖片圖片

有兩種安裝方式: helm 或者是直接 apply 一個資源文件。

關于 helm 我們會在后面的章節單獨講解。

這里就直接使用資源文件安裝即可,我已經上傳到 GitHub 可以在這里訪問:https://github.com/crossoverJie/k8s-combat/blob/main/deployment/ingress-nginx.yaml

其實這個文件也是直接從官方提供的復制過來的,也可以直接使用這個路徑進行安裝:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml

yaml 文件的內容是一樣的。

不過要注意安裝之后可能容器狀態一直處于 Pending 狀態,查看容器的事件時會發現鏡像拉取失敗。

k describe pod ingress-nginx-controller-7cdfb9988c-lbcst -n ingress-nginx

describe 是一個用于查看 k8s 對象詳細信息的命令。

在剛才那份 yaml 文件中可以看到有幾個鏡像需要拉取,我們可以先在本地手動拉取鏡像:

圖片圖片

docker pull registry.k8s.io/ingress-nginx/controller:v1.8.2

如果依然無法拉取,可以嘗試配置幾個國內鏡像源鏡像拉取:

圖片圖片

我這里使用的 docker-desktop 自帶的 k8s,推薦讀者朋友也使用這個工具。

創建 Ingress

使用剛才的 yaml 安裝成功之后會在 ingress-nginx 命名空間下創建一個 Pod,通過 get 命令查看狀態為 Running 即為安裝成功。

$ k get pod -n ingress-nginx
NAME                            READY   STATUS    RESTARTS      AGE
ingress-nginx-controller-7cdf   1/1     Running   2 (35h ago)   3d

Namespace 也是 k8s 內置的一個對象,可以簡單理解為對資源進行分組管理,我們通常可以使用它來區分各個不同的環境,比如 dev/test/prod 等,不同命名空間下的資源不會互相干擾,且相互獨立。

之后便可以創建 Ingress 資源了:

apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  
  name: k8s-combat-ingress  
spec:  
  ingressClassName: nginx  
  rules:  
    - host: www.service1.io  
      http:  
        paths:  
          - backend:  
              service:  
                name: k8s-combat-service  
                port:  
                  number: 8081  
            path: /  
            pathType: Prefix  
    - host: www.service2.io  
      http:  
        paths:  
          - backend:  
              service:  
                name: k8s-combat-service-2  
                port:  
                  number: 8081  
            path: /  
            pathType: Prefix

看這個內容也很容易理解,創建了一個 Ingress 的對象,其中的重點就是這里的規則是如何定義的。

在 k8s 中今后還會接觸到各種不同的 Kind。

這里的 ingressClassName: nginx   也是在剛開始安裝的控制器里定義的名字,由這個資源定義。

apiVersion: networking.k8s.io/v1  
kind: IngressClass  
metadata:  
  labels:  
    app.kubernetes.io/component: controller  
    app.kubernetes.io/instance: ingress-nginx  
    app.kubernetes.io/name: ingress-nginx  
    app.kubernetes.io/part-of: ingress-nginx  
    app.kubernetes.io/version: 1.8.2  
  name: nginx

咱們這個規則很簡單,就是將兩個不同的域名路由到兩個不同的 service。

這里為了方便測試又創建了一個 k8s-combat-service-2 的 service,和 k8s-combat-service 是一樣的,只是改了個名字而已。

測試

也是為了方便測試,我在應用鏡像中新增了一個接口,用于返回當前 Pod 的 hostname。

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {  
   name, _ := os.Hostname()  
   fmt.Fprint(w, name)  
})

由于我實際并沒有 www.service1.io/www.service2.io 這兩個域名,所以只能在本地配置 host 進行模擬。

10.0.0.37 www.service1.io
10.0.0.37 www.service2.io

我測試所使用的 k8s 部署在我家里一臺限制的 Mac 上,所以這里的 IP 它的地址。

當我們反復請求兩次這個接口,會拿到兩個不同的 hostname,也就是將我們的請求輪訓負載到了這兩個 service 所代理的兩個 Pod 中。

? curl http://www.service1.io/
k8s-combat-service-79c5579587-b6nlj%
? curl http://www.service1.io/
k8s-combat-service-79c5579587-bk7nw%
? curl http://www.service2.io/
k8s-combat-service-2-7bbf56b4d9-dkj9b%
? curl http://www.service2.io/
k8s-combat-service-2-7bbf56b4d9-t5l4g

我們也可以直接使用 describe 查看我們的 ingress 定義以及路由規則:

圖片圖片

$ k describe ingress k8s-combat-ingress
Name:             k8s-combat-ingress
Labels:           <none>
Namespace:        default
Address:          localhost
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host             Path  Backends
  ----             ----  --------
  www.service1.io
                   /   k8s-combat-service:8081 (10.1.0.65:8081,10.1.0.67:8081)
  www.service2.io
                   /   k8s-combat-service-2:8081 (10.1.0.63:8081,10.1.0.64:8081)
Annotations:       <none>
Events:            <none>

如果我們手動新增一個域名解析:

10.0.0.37 www.service3.io
? curl http://www.service3.io/
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

會直接 404,這是因為沒有找到這個域名的規則。

訪問原理

圖片圖片

整個的請求路徑如上圖所示,其實我們的 Ingress 本質上也是一個 service(所以它也可以啟動多個副本來進行負載),只是他的類型是 LoadBalancer,通常這種類型的 service 會由云廠商綁定一個外部 IP,這樣就可以通過這個外部 IP 訪問 Ingress 了。

而我們應用的 service 是 ClusterIP,只能在應用內部訪問。

圖片圖片

通過 service 的信息也可以看到,我們 ingress 的 service 綁定的外部 IP 是 localhost(本地的原因)。

總結

Ingress 通常是充當網關的作用,后續我們在使用 Istio 時,也可以使用 Istio 所提供的控制器來替換掉 Ingress-nginx,可以更方便的管理內外網流量。

本文的所有源碼在這里可以訪問:https://github.com/crossoverJie/k8s-combat

責任編輯:武曉燕 來源: crossoverJie
相關推薦

2023-11-27 13:54:00

kubernetes高可用

2023-11-15 13:44:00

k8s-域名日志

2020-02-19 19:26:27

K8S開源平臺容器技術

2023-09-27 08:09:22

2023-11-30 08:08:30

k8s優雅停機

2023-09-21 11:28:28

Kubernetes云原生

2023-09-18 15:49:40

Ingress云原生Kubernetes

2023-09-24 22:47:42

Kubernetes親和性

2023-09-27 22:33:40

KubernetesK8S

2023-12-25 08:05:35

2021-03-12 08:20:24

架構網絡模型

2024-01-29 13:03:02

2020-06-16 08:47:53

磁盤

2021-08-10 07:57:57

k8s Nginx IngrNginx

2023-09-06 08:12:04

k8s云原生

2009-11-16 10:53:30

Oracle Hint

2024-12-11 07:00:00

面向對象代碼

2025-03-13 06:22:59

2017-09-27 11:00:50

LinuxBash使用技巧

2024-01-12 08:03:29

k8s配置持久化
點贊
收藏

51CTO技術棧公眾號

久久国产精品成人免费观看的软件| 国产精品毛片久久久| 成人激情免费网站| 欧美一区二区视频17c| 久久1电影院| 自拍亚洲一区欧美另类| 亚洲国产另类精品专区| 欧美v国产在线一区二区三区| 国产资源在线播放| 日韩一级黄色av| 性久久久久久| 天天干天天综合| 欧美日韩免费看| 又黄又爽在线观看| 国产精品水嫩水嫩| 91短视频在线观看| 在线区一区二视频| 老司机午夜免费福利视频| 国产精品任我爽爆在线播放| 欧美怡春院一区二区三区| 日日夜夜一区| 青青色在线视频| 久久精品国产v日韩v亚洲| 国产精彩免费视频| 国产成人免费在线观看不卡| 亚洲一区二区三区xxx视频| 亚洲另类av| 2019中文在线观看| 97一区二区国产好的精华液| 欧美高清视频在线播放| 99久久这里有精品| 久久男人资源视频| 国产精品欧美在线观看| 国产欧美一区二区三区久久| 欧美综合久久| 亚洲自拍小视频免费观看| 欧美在线二区| 日本免费高清一区| 久久精品国产77777蜜臀| 色狠狠久久av五月综合| 国产精品资源网| 青青视频在线播放| 亚洲日本护士毛茸茸| 在线资源免费观看| 欧美日韩精品免费观看视频| www视频在线免费观看| 亚洲激情在线观看视频免费| 日韩成人亚洲| 91av在线视频观看| 中文字幕一区二区三三| 色之综合天天综合色天天棕色| 国产精品 欧美精品| 三上悠亚av一区二区三区| 亚洲一区二区三区视频在线| 午夜视频在线看| 日韩激情av在线免费观看| 懂色aⅴ精品一区二区三区| 91极品女神在线| 亚洲经典在线看| 无码人妻少妇伦在线电影| 亚洲欧美偷拍三级| 日本视频在线观看| 久热精品在线视频| 欧美成人午夜| www.好吊操| 精品国产成人在线| 色一区二区三区| 国产盗摄xxxx视频xxx69| 西西人体一区二区| 日韩一级片播放| 欧美综合欧美视频| 亚洲人成777| 国产激情美女久久久久久吹潮| 久色婷婷小香蕉久久| 99riav视频| 欧美一区二区福利在线| 中文无码日韩欧| 精品日本一区二区| 国产欧美日韩三级| 少女频道在线观看高清| 欧美一级片在线播放| 日韩精品欧美成人高清一区二区| 日韩av资源在线| 欧美精品高清视频| 日本少妇精品亚洲第一区| 久久精品二区| 中文字幕欧美三区| 国产黄色小视频在线| 欧美影院久久久| 国产一区999| 搞黄视频免费在线观看| 九色精品免费永久在线| 日精品一区二区三区| 真不卡电影网| 欧美日本啪啪无遮挡网站| 天堂在线一区二区| 一区二区三区区四区播放视频在线观看| 国产亚洲精品高潮| 国产日本精品| 人人超碰在线| 久久久久久久激情视频| 精品一区二区三区免费观看| 在线看片线路1| 久久久久久久一| 国产一二精品视频| 麻豆tv在线| 91视频8mav| 中文字幕一区二区三区四区| 97天天综合网| 国产精品一区二区免费| 亚洲日本护士毛茸茸| 日日夜夜亚洲| 91精品国产毛片武则天| 正在播放一区二区| 久久精品青草| 日本成在线观看| 欧美激情区在线播放| 国产激情一区二区三区四区| 在线观看的网站你懂的| www.久久草| 富二代精品短视频| 成人黄色小视频| 欧美xx网站| 国产极品jizzhd欧美| 国产精品国产三级国产普通话蜜臀 | 一区二区三区电影| 欧美日韩一区二区三区视频 | 国产婷婷精品| 日韩av资源站| 国产精品日韩在线| 亚洲免费观看高清完整| 性欧美xxxx免费岛国不卡电影| 欧美少妇性生活视频| 欧美超级免费视 在线| 99久久久久久| 欧洲精品99毛片免费高清观看 | 欧美激情一区二区三区成人| 91伊人久久大香线蕉| av成人在线播放| 人妻夜夜添夜夜无码av| 中文国产成人精品久久一| 成人三级在线视频| 欧美精品三级在线| 国产黄视频在线观看| 国产精品国产三级国产专播精品人| 亚洲精品亚洲人成人网 | 在线观看麻豆蜜桃| 久热国产精品视频一区二区三区| 欧美精品久久久久久久久老牛影院| 亚洲一区二区伦理| 黄频免费在线观看| 内射国产内射夫妻免费频道| 77777亚洲午夜久久多人| 亚洲一区中文在线| 日韩五码在线| 国产精品久久亚洲不卡| 一区二区三区 日韩| 国产在线不卡精品| 日韩一区二区三区电影在线观看 | 日韩免费电影一区二区| 亚洲欧美另类图片| 永久免费网站在线| 粉嫩13p一区二区三区| 最近97中文超碰在线| 国产精品亚洲美女av网站| 精品高清美女精品国产区| 亚洲啪啪91| 午夜裸体女人视频网站在线观看| 和岳每晚弄的高潮嗷嗷叫视频 | 浪潮av在线| 91久久精品国产91久久性色tv| 日韩一区二区三区在线视频| 国产99精品在线观看| 欧美黑人巨大videos精品| 精品亚洲综合| 手机看片日韩国产| 欧美一区视频在线| 7777精品伊人久久久大香线蕉经典版下载| 免费精品99久久国产综合精品| 亚洲图片小说区| 午夜成在线www| 亚洲精品一区二区三区樱花| 综合网中文字幕| 欧美日韩中文字幕在线| 国产乱码精品一区二区三区五月婷| 婷婷综合一区| av3级在线| 免费看av大片| 波多野结衣激情| 国产精品中文字幕在线观看| 亚洲激情自拍图| 亚洲日本青草视频在线怡红院| 丝袜美腿亚洲综合| 久久影视三级福利片| 黄色网址在线免费| 日本www.色| 亚洲欧洲精品在线观看| 国产99久久精品一区二区永久免费| 日韩午夜激情免费电影| 亚洲欧美激情小说另类|