溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kubernetes網(wǎng)絡(luò)基本內(nèi)容有哪些

發(fā)布時間:2021-12-29 09:04:48 來源:億速云 閱讀:268 作者:iii 欄目:云計算

這篇文章主要講解了“Kubernetes網(wǎng)絡(luò)基本內(nèi)容有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Kubernetes網(wǎng)絡(luò)基本內(nèi)容有哪些”吧!

Kubernetes網(wǎng)絡(luò)基本的部署調(diào)度單元:Pod

Kubernetes中的基本管理單元并非是一個容器,而是一個叫做pod的東西。我們認為部署了一個或多個容器的環(huán)境是一個pod單元。通常情況下,它們代表了提供部分服務(wù)的單個功能端點。

舉兩個有效的pods單元為例:

  • 數(shù)據(jù)庫pod -- 一個單一MySQL容器

  • Web pod -- 包含一個python實例的容器及包含Redis數(shù)據(jù)庫的容器

pods具有以下常用的特性:

  • 它們共享資源 -- 包括了網(wǎng)絡(luò)棧和命名空間

  • pod包含了一個IP地址,用于客戶端連接

  • pod的配置定義了任意公共端口以及哪個容器占用該端口

  • pod中的全部容器可以通過網(wǎng)絡(luò)中的任意端口進行交互(這些容器都會被本地引用,因此需要確保pod中的服務(wù)都有唯一的端口)

Kubernetes服務(wù)(Kubernetes Services)

Kubernetes服務(wù)位于負載均衡器之后,負責管理多個相同的pods??蛻舳藷o需連接到每個pod的IP,而是直接連接負載均衡器的IP地址。Kubernetes服務(wù)會將你的應用程序定義為一個服務(wù),使得Kubernetes可以根據(jù)定義的規(guī)則和實際可用資源動態(tài)擴展pod數(shù)量。

若想要應用程序被Kubernetes基礎(chǔ)設(shè)施外部的客戶端訪問到,唯一的方法是將應用程序定義為服務(wù)的一部分。無論你是否擴展節(jié)點,都需要Kubernetes服務(wù)分配外部IP地址。

標簽(Labels)

標簽是Kubernetes中一組作用于對象(如pods)的鍵值對,需要具有實際意義且有相關(guān)性。

在Kubernetes的標準配置中,標簽并不直接影響與Kubernetes相關(guān)的核心操作,而是主要用于對對象的分組和識別。

網(wǎng)絡(luò)安全(Network Security)

下面我們將介紹一些Kubernetes推薦使用的網(wǎng)絡(luò)插件,這些插件用到了我們上一節(jié)提到的標簽。利用標簽,它們可以在容器運行時改變某些功能。在Kubernetes中,大多數(shù)使用的網(wǎng)絡(luò)插件都是基于容器網(wǎng)絡(luò)接口(Container Networking Interface ,CNI)規(guī)范,這項規(guī)范由Cloud Native Computing Foundation(CNCF)制定。CNI允許在多個容器平臺中使用相同的網(wǎng)絡(luò)插件。現(xiàn)在我們使用一種調(diào)整網(wǎng)絡(luò)安全策略的方法,該方法并不像傳統(tǒng)的網(wǎng)絡(luò)或者安全團隊模型那樣預先設(shè)置好一切,而是在容器運行時,利用標簽來調(diào)整正確的網(wǎng)絡(luò)策略(容器的動態(tài)變化太過頻繁,很難進行手動干預),目前該方法已經(jīng)成為了 Kubernetes Network Special Internet Group(Network SIG)的一部分。如今,我們已經(jīng)有多個可供使用的網(wǎng)絡(luò)插件能夠?qū)⒕W(wǎng)絡(luò)策略應用于命名空間和pods中,這其中包括OpenContrail 和 Project Calico。

通過這種新方法,Kubernetes管理員可以導入所有預先準備的策略,開發(fā)者負責調(diào)整并根據(jù)需求自主選擇策略,而所有這一切都會定義到pod中執(zhí)行。

網(wǎng)絡(luò)策略示例:

POST /apis/net.alpha.kubernetes.io/v1alpha1/namespaces/tenant-a/networkpolicys/
{
    "kind": "NetworkPolicy",
    "metadata": {
        "name": "pol1"
    },
    "spec": {
        "allowIncoming": {
            "from": [
                { "pods": { "segment": "frontend" } }
            ],
            "toPorts": [
                { "port": 80, "protocol": "TCP" }
            ]
         },
            "podSelector": { "segment": "backend" }
     }
}

有網(wǎng)絡(luò)策略定義的pod配置示例:

apiVersion: v1
kind: Pod
metadata:
 name: nginx
 labels:
   app: nginx
   segment: frontend
spec:
 containers:
 - name: nginx
   image: nginx
   ports:
   - containerPort: 80

感謝各位的閱讀,以上就是“Kubernetes網(wǎng)絡(luò)基本內(nèi)容有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Kubernetes網(wǎng)絡(luò)基本內(nèi)容有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI