一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

計算機網(wǎng)絡(luò )技術(shù)原理

時(shí)間:2024-07-11 11:59:15 網(wǎng)絡(luò )技術(shù) 我要投稿
  • 相關(guān)推薦

計算機網(wǎng)絡(luò )技術(shù)原理

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

  其主要功能如下

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

  解決Docker 跨機器容器之間的通訊問(wèn)題;

  Kubernetes 的自我修復機制使得容器集群總是運行在用戶(hù)期望的狀態(tài)。

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

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

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

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

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

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

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

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

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

  Volume:Pod 中被多個(gè)容器訪(fǎng)問(wèn)的共享目錄。

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

  在開(kāi)始了解Kubernetes 的網(wǎng)絡(luò )原理之前,我們先來(lái)看下docker 的網(wǎng)絡(luò )模型。

  2Docker的網(wǎng)絡(luò )模型

  docker network ls 這個(gè)命令用于列出所有當前主機上的網(wǎng)絡(luò ):

  在默認情況下會(huì )看到三個(gè)網(wǎng)絡(luò ),它們是DockerDeamon 進(jìn)程創(chuàng )建的。標準的Docker 支持一下4種網(wǎng)絡(luò )模式:

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

  None模式:使用—net=none指定。容器沒(méi)有任何網(wǎng)卡,適合不需要與外部通過(guò)網(wǎng)絡(luò )通信的容器;

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

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

  在Kubernetes 的管理模式下,通常只使用bridge 模式。在bridge 模式下,DockerDaemon 第一次啟動(dòng)時(shí)創(chuàng )建一個(gè)虛擬的網(wǎng)橋,缺省名字是docker0,然后按照RPC1918的模型,在私有網(wǎng)絡(luò )空間中給這個(gè)網(wǎng)橋分配一個(gè)子網(wǎng)。Docker 創(chuàng )建出來(lái)的每一個(gè)容器,都會(huì )創(chuàng )建一個(gè)虛擬的Veth 設備對,其中一端關(guān)聯(lián)到網(wǎng)橋上,另一端用Linux 的網(wǎng)絡(luò )命名空間技術(shù),映射到容器內的eth0設備,然后在網(wǎng)橋的地址段內分配一個(gè)IP地址。

  Docker的缺省橋接網(wǎng)絡(luò )模型:

  虛擬化技術(shù)中最為復雜的就是虛擬化網(wǎng)絡(luò )技術(shù),也是門(mén)檻很高的技術(shù)領(lǐng)域,Docker 很明智的早期并沒(méi)有提供跨主機的解決方案。

  3什么是kubernetes網(wǎng)絡(luò )模型?

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

  相比于Docker 原生的NAT方式來(lái)說(shuō),這樣使得容器在網(wǎng)絡(luò )層面更像虛擬機或者物理機,復雜度整體降低,更加容易實(shí)現服務(wù)發(fā)現,遷移,負載均衡等功能。

  容器間的通信

  創(chuàng )建的dashboard 容器信息:

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

  執行下圖中的命令可以發(fā)現:

  第二個(gè)容器和第一個(gè)容器共享網(wǎng)絡(luò )命名空間。第一個(gè)容器是Netowrk Container,它不做任何事情,只是用來(lái)接管Pod 的網(wǎng)絡(luò )。這樣做的好處在于避免容器間的相互依賴(lài),使用一個(gè)簡(jiǎn)單的容器來(lái)統一管理網(wǎng)絡(luò )。

  Pod 間的通信

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

  以dashboard 為例:

  同一個(gè)Node 上的Pod 通過(guò)Veth 連接在同一個(gè)docker0 網(wǎng)橋上,地址段相同,原生能通信。但是不同Node 之間的Pod 如何通信的,本質(zhì)是在網(wǎng)路上再架設一層overlay network 使容器的網(wǎng)絡(luò )運行在這層overlay 網(wǎng)絡(luò )上,F有的方案有Flannel,OpenVSwitch,Weave 等。本文Kubernetes 環(huán)境是采用Flannel。

  Flannel 使用Linux 通用TUN/ TAP 設備, 并使用UDP 封裝IP 數據包創(chuàng )建一個(gè)覆蓋網(wǎng)絡(luò )。它使用etcd 維護子網(wǎng)的分配和overlay 網(wǎng)絡(luò )和實(shí)際IP 的映射。

  下圖是Flannel 的原理圖:

  Pod 到Service 通信

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

  那么dashboard 就可以通過(guò)10.254.104.235來(lái)進(jìn)行訪(fǎng)問(wèn),執行iptables-save:

  然后執行lsof –i:30250:

  可以看到Kube-Proxy 進(jìn)程監聽(tīng)在30250端口上,這個(gè)進(jìn)程可以看做是Service 的透明代理兼負載均衡器,對于Service 的訪(fǎng)問(wèn)請求將被這個(gè)進(jìn)程轉發(fā)到后端Pod。

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

  下圖中可以很好的反映整個(gè)流程:

  當一個(gè)客戶(hù)端訪(fǎng)問(wèn)這個(gè)Service 時(shí),這些iptable 規則就開(kāi)始起作用,客戶(hù)端的流量被重定向到Kube-Proxy 為這個(gè)Service 打開(kāi)的端口上,Kube-Proxy 隨機選擇一個(gè)后端Pod 來(lái)進(jìn)行服務(wù)。

  外部到內部的通信

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

  NodePort:在每個(gè)Node 上打開(kāi)一個(gè)端口并且每個(gè)Node 的端口都是一樣的,通過(guò):NodePort 的方式,Kubernetes 集群外部的程序可以訪(fǎng)問(wèn)Service;

  LoadBalancer: 通過(guò)外部的負載均衡器來(lái)訪(fǎng)問(wèn)。

【計算機網(wǎng)絡(luò )技術(shù)原理】相關(guān)文章:

PTN網(wǎng)絡(luò )技術(shù)的原理及分析04-03

計算機云計算的原理與應用03-15

計算機網(wǎng)絡(luò )技術(shù)簡(jiǎn)介11-29

計算機網(wǎng)絡(luò )技術(shù)基礎03-30

計算機組成原理是什么11-16

怎樣學(xué)好計算機網(wǎng)絡(luò )技術(shù)03-14

學(xué)習計算機網(wǎng)絡(luò )技術(shù)總結03-30

計算機硬件故障原理及日常維護03-29

計算機網(wǎng)絡(luò )技術(shù)的應用和發(fā)展03-31

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看