《python運維和開發實戰-高階篇》視訊課程筆記二

mi_zy發表於2021-02-23

1、 docker load 命令,可匯入映象檔案 *.tar ,該檔案一般由 docker save 命令進行映象匯出的。 -i : 指定匯出的檔案。

2、介紹:Keepalived是Linux下一個輕量級別的高可用解決方案。中文名稱:存活檢測機制。起初針對LVS( LVS Linux Virtual Server 的簡寫,意即 Linux虛擬伺服器 ,是一個虛擬的伺服器叢集系統)進行研發,專門用來監控叢集系統中各個服務節點的狀態。如果負載排程器出現故障,keepalive檢測到以後將故障點直接從叢集中剔除。

    作用:支援故障自動切換、支援節點健康狀態檢查

    原理:心跳檢測

3、通常情況下,利用Keepalived做整個叢集的高可用元件,其中一臺設定為master,一臺設定為backup。當master出現異常後,backup自動切換為master。然而當master恢復正常後會再次搶佔成為master,最終導致不必要的主備切換。因此可以將兩臺keepalived初始狀態均配置為backup,設定不同的優先順序,優先順序高的設定為nopreempt來解決異常恢復後再次搶佔的問題。雙方在傳送組播資訊後,會根據優先順序來選舉一個MASTER出來。由於兩者都配置了nopreempt(開啟非搶佔模式),所以MASTER從故障中恢復後,不會搶佔vip。這樣會避免VIP切換可能造成的服務延遲。

4、YAML 的語法和其他高階語言類似,並且可以簡單表達清單、雜湊表,標量等資料形態。它使用空白符號縮排和大量依賴外觀的特色,特別適合用來表達或編輯資料結構、各種配置檔案、傾印除錯內容、檔案大綱,YAML 的配置檔案字尾為 .yml,如:runoob.yml 。物件鍵值對使用冒號結構表示 key: value,冒號後面要加一個空格。

也可以使用 key:{key1: value1, key2: value2, ...}。

5、在Kubernetes叢集中,Pod是所有業務型別的基礎,它是一個或多個容器的組合。這些容器共享儲存、網路和名稱空間,以及如何執行的規範。在Pod中,所有容器都被同一安排和排程,並執行在共享的上下文中。對於具體應用而言,Pod是它們的邏輯主機,Pod包含業務相關的多個應用容器。Kubernetes不只是支援Docker容器,它也支援其他容器。 pod是K8s最小的執行,部署單位。用K8s作容器管理,比如Mysql,Redis等服務執行需要建立Pod,才能對外提供服務。

6、 適用場景:k8s環境中的pod之間需要隔離。

    Calico 是一種容器之間互通的網路方案。在虛擬化平臺中,比如 OpenStack、Docker 等都需要實現 workloads 之間互連,但同時也需要對容器做隔離控制,就像在 Internet 中的服務僅開放80埠、公有云的多租戶一樣,提供隔離和管控機制。而在多數的虛擬化平臺實現中,通常都使用二層隔離技術來實現容器的網路,這些二層的技術有一些弊端,比如需要依賴 VLAN、bridge 和隧道等技術,其中 bridge 帶來了複雜性,vlan 隔離和 tunnel 隧道則消耗更多的資源並對物理環境有要求,隨著網路規模的增大,整體會變得越加複雜。我們嘗試把 Host 當作 Internet 中的路由器,同樣使用 BGP 同步路由,並使用 iptables 來做安全訪問策略,最終設計出了 Calico 方案。

設計思想:Calico 不使用隧道或 NAT 來實現轉發,而是巧妙的把所有二三層流量轉換成三層流量,並通過 host 上路由配置完成跨 Host 轉發。

7、k8s是通過各種controller來管理pod的生命週期。為了滿足不同業務場景,k8s開發了Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等多種 Controller。Deployment為Pod和Replica Set提供宣告式更新。只需要在 Deployment 中描述您想要的目標狀態是什麼,Deployment controller 就會幫您將 Pod 和ReplicaSet 的實際狀態改變到您的目標狀態。您可以定義一個全新的 Deployment 來建立 ReplicaSet 或者刪除已有的 Deployment 並建立一個新的來替換。 定義一組Pod期望數量,Controller會維持Pod數量與期望數量一致。

8、


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2758844/,如需轉載,請註明出處,否則將追究法律責任。

相關文章