奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

網絡技術

計算機網絡技術原理

時間:2024-08-09 22:35:17 網絡技術 我要投稿
  • 相關推薦

計算機網絡技術原理

  Kubernetes(k8s) 源于古希臘語,意寓為舵手,管理者。Kubernetes 是Google開源的容器集群管理系統,其提供應用部署、維護、擴展機制等功能,利用Kubernetes能方便地管理跨機器運行容器化的應用,下面跟著小編一起了解一些計算機網絡技術原理。

  其主要功能如下

  以集群的方式運行、管理跨機器的容器;

  解決Docker 跨機器容器之間的通訊問題;

  Kubernetes 的自我修復機制使得容器集群總是運行在用戶期望的狀態。

  實際上使用Kubernetes 只需要一個部署文件,使用一條命令就可以部署一個完整集群(以網部署k8s 的dashboard 為例):

  kubectl create -fhttps://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

  現在先介紹一些核心的概念:

  Pods:是連接在一起的容器組合并共享文件卷。它們是最小的部署單元,由 Kubernetes 統一創建、調度、管理;

  Replication controllers:管理 Pods 的生命周期, 它們確保指定數量的Pods 會一直運行;

  Labels:被用來管理和選取基于鍵值對為基礎的對象組;

  Services:提供獨立、可靠名稱和地址的 Pods 集合,它就像一個基礎版本的負載均衡器;

  Node:相對master是工作主機,也叫Minon,物理機、虛擬機均可。

  Namespace:不同的namespace 形成邏輯上不同的項目或用戶組。

  Volume:Pod 中被多個容器訪問的共享目錄。

  下圖是典型的Kubernetes 的架構圖:

  在開始了解Kubernetes 的網絡原理之前,我們先來看下docker 的網絡模型。

  2Docker的網絡模型

  docker network ls 這個命令用于列出所有當前主機上的網絡:

  在默認情況下會看到三個網絡,它們是DockerDeamon 進程創建的。標準的Docker 支持一下4種網絡模式:

  Bridge模式:使用—net=bridge指定。容器使用獨立網絡Namespace,并連接到docker0虛擬網卡(默認模式);

  None模式:使用—net=none指定。容器沒有任何網卡,適合不需要與外部通過網絡通信的容器;

  Host模式:使用—net=host指定。容器與主機共享網絡Namespace,擁有與主機相同的網絡設備;

  Container模式:使用—net=container:NAME_or_ID指定。

  在Kubernetes 的管理模式下,通常只使用bridge 模式。在bridge 模式下,DockerDaemon 第一次啟動時創建一個虛擬的網橋,缺省名字是docker0,然后按照RPC1918的模型,在私有網絡空間中給這個網橋分配一個子網。Docker 創建出來的每一個容器,都會創建一個虛擬的Veth 設備對,其中一端關聯到網橋上,另一端用Linux 的網絡命名空間技術,映射到容器內的eth0設備,然后在網橋的地址段內分配一個IP地址。

  Docker的缺省橋接網絡模型:

  虛擬化技術中最為復雜的就是虛擬化網絡技術,也是門檻很高的技術領域,Docker 很明智的早期并沒有提供跨主機的解決方案。

  3什么是kubernetes網絡模型?

  Kubernetes 網絡設計的一個基本原則是:每個Pod 都有一個全局唯一的IP, 而且假定所有的Pod 都在一個可以直接連通的,扁平的網絡空間中,Pod 之間可以跨主機通信,按照這種網絡原則抽象出來的一個Pod 對應一個IP的設計模型也被稱作IP-per-Pod 模型。

  相比于Docker 原生的NAT方式來說,這樣使得容器在網絡層面更像虛擬機或者物理機,復雜度整體降低,更加容易實現服務發現,遷移,負載均衡等功能。

  容器間的通信

  創建的dashboard 容器信息:

  在yaml 文件中你可以發現我們設置的replicas 的數量是1,但是卻發現了兩個容器在運行,第二個image名為gcr.io/google_containers/pause:2.0,那么第二個容器從何而來?

  執行下圖中的命令可以發現:

  第二個容器和第一個容器共享網絡命名空間。第一個容器是Netowrk Container,它不做任何事情,只是用來接管Pod 的網絡。這樣做的好處在于避免容器間的相互依賴,使用一個簡單的容器來統一管理網絡。

  Pod 間的通信

  Pod 間的通信使用的是一個內部IP,這個IP就是Network Container 的IP。

  以dashboard 為例:

  同一個Node 上的Pod 通過Veth 連接在同一個docker0 網橋上,地址段相同,原生能通信。但是不同Node 之間的Pod 如何通信的,本質是在網路上再架設一層overlay network 使容器的網絡運行在這層overlay 網絡上。現有的方案有Flannel,OpenVSwitch,Weave 等。本文Kubernetes 環境是采用Flannel。

  Flannel 使用Linux 通用TUN/ TAP 設備, 并使用UDP 封裝IP 數據包創建一個覆蓋網絡。它使用etcd 維護子網的分配和overlay 網絡和實際IP 的映射。

  下圖是Flannel 的原理圖:

  Pod 到Service 通信

  查看dashboard 的Service 的VIP(Virtual IP) 和后端Pod 的IP:

  那么dashboard 就可以通過10.254.104.235來進行訪問,執行iptables-save:

  然后執行lsof –i:30250:

  可以看到Kube-Proxy 進程監聽在30250端口上,這個進程可以看做是Service 的透明代理兼負載均衡器,對于Service 的訪問請求將被這個進程轉發到后端Pod。

  對于Pod 的變化會及時刷新。那么Service 就是在Pod 間起到中轉和代理的作用。

  下圖中可以很好的反映整個流程:

  當一個客戶端訪問這個Service 時,這些iptable 規則就開始起作用,客戶端的流量被重定向到Kube-Proxy 為這個Service 打開的端口上,Kube-Proxy 隨機選擇一個后端Pod 來進行服務。

  外部到內部的通信

  Kubernetes 支持兩種對外服務的Service 的Type 定義:NodePort 和LoadBalancer。

  NodePort:在每個Node 上打開一個端口并且每個Node 的端口都是一樣的,通過:NodePort 的方式,Kubernetes 集群外部的程序可以訪問Service;

  LoadBalancer: 通過外部的負載均衡器來訪問。

【計算機網絡技術原理】相關文章:

計算機的組成及工作原理07-02

計算機內存的工作原理07-19

計算機網絡技術知識12-22

計算機網絡技術模擬試題及答案12-23

計算機網絡技術的現狀及發展01-29

計算機網絡技術與應用模擬試題「附答案」02-06

計算機網絡技術考試題庫附答案07-02

2024自考計算機網絡技術綜合練習題「附答案」09-13

數碼相機的曝光原理06-08

色彩搭配原理和技巧09-04

主站蜘蛛池模板: 山阴县| 禹城市| 凌海市| 山阴县| 江津市| 山阳县| 文山县| 元阳县| 张家港市| 新乐市| 明星| 昌邑市| 清丰县| 兴义市| 宁蒗| 云安县| 黑水县| 当雄县| 尼勒克县| 榕江县| 咸阳市| 丹寨县| 石嘴山市| 东城区| 大城县| 双江| 永宁县| 青阳县| 乐平市| 池州市| 轮台县| 长治市| 镇坪县| 乐山市| 丹巴县| 成安县| 绥江县| 蕉岭县| 宁河县| 磐石市| 密云县|