主要內容:
K8s介紹
K8s組件介紹
K8s中zookeeper集群部署
K8s常見故障及處理方法
1. 服務發現和負載均衡
Kubernetes 可以使用 DNS 名稱或自己的 IP 地址公開容器,如果到容器的流量很大,Kubernetes 可以負載均衡并分配網絡流量,從而使部署穩定。
2. 存儲編排
Kubernetes 允許您自動掛載您選擇的存儲系統,例如本地存儲、公共云提供商等
3. 自動部署和回滾
您可以使用 Kubernetes 描述已部署容器的所需狀態,它可以以受控的速率將實際狀態更改為所需狀態。例如,您可以自動化 Kubernetes 來為您的部署創建新容器,刪除現有容器并將它們的所有資源用于新容器。
4. 自我修復
Kubernetes 重新啟動失敗的容器、替換容器、殺死不響應用戶定義的運行狀況檢查的容器,并且在準備好服務之前不將其通告給客戶端。
5. 密鑰與配置管理
Kubernetes 允許您存儲和管理敏感信息,例如密碼、OAuth 令牌和 ssh 密鑰。您可以在不重建容器鏡像的情況下部署和更新密鑰和應用程序配置,也無需在堆棧配置中暴露密鑰。
etcd 是兼具一致性和高可用性的鍵值數據庫,用于存儲K8S中資源對象,如集群中Pod,Node等狀態以及配置數據等。生產中需要對etcd進行高可用部署,通常為三個節點到七個節點之間的奇數節點,并且需要定期進行數據備份。etcd各個節點使用raft共識算法進行數據復制。當節點數量過多會導致仲裁和數據復制的效率降低!
在kubernetes集群中,僅apiserver會和etcd集群進行通信。在k8s集群中,etcd的性能至關重要!
master和node是兩個邏輯上節點,當服務器資源充足時,可以將其分開在不同的機器上部署,當服務器資源不足時,也可以放到同一臺機器上部署。master節點在部署的時候必須要考慮高可用方案,至少部署兩個master。
主節點上負責提供 Kubernetes API 服務的組件;它是 Kubernetes 控制面的前端。是整個集群中資源操作的唯一入口,并提供認證、授權、訪問控制、API注冊和發現等機制。
apiserver提供了集群管理的restful api接口(鑒權、數據校驗、集群變更等),負責和其它模塊之間進行數據交互,承擔了通信樞紐功能。
apiserver是無狀態的,可以橫向擴展,當存在多個apiserver時,前端會采用LB作為負載均衡,如Nginx,LVS,ELB等
controller manager 譯為“控制器管理器”,k8s內部有很多資源控制器,比如:Node Controller、Replication Controller、Deployment Controller、Job Controller、Endpoints Controller等等,為了降低復雜度,將這些控制切都編譯成了一個可執行文件,并且在同一個進程中運行。controller manager 負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等。
controller-manager 雖然允許同時運行多個實例,但是只有一個能成為leader,并處理控制器的請求。controller-manager 鎖對象存儲在 kube-system 名稱空間下的 kube-controller-manager endpoints對象中。
調度器組件監視那些新創建的未指定運行節點的 Pod,并選擇節點讓 Pod 在上面運行。調度決策考慮的因素包括單個 Pod 和 Pod 集合的資源需求、硬件/軟件/策略約束、親和性和反親和性規范、數據位置、工作負載間的干擾和最后時限。
一個在集群中每個節點上運行的代理,kubelet 接收一組通過各類機制提供給它的 PodSpecs,確保這些 PodSpecs 中描述的容器處于運行狀態且健康。kubelet 不會管理非 Kubernetes 創建的容器。
kube-proxy 是集群中每個節點上運行的網絡代理,是實現service資源功能組件之一。kube-proxy 建立了pod網絡和集群網絡之間的關系,即 cluster ip 和 pod ip 中間的關系。不同node上的service流量轉發規則會通過kube-proxy進行更新,其實是調用apiserver訪問etcd進行規則更新。
service流量調度方式有三種方式: userspace(廢棄,性能很差)、iptables(性能差,復雜)、ipvs(性能好,轉發方式清晰)。
即容器運行環境,Kubernetes 支持多個容器運行環境: Docker、 containerd、cri-o、 rktlet 以及任何實現 Kubernetes CRI (容器運行環境接口)。常用的是Docker CE。
通過 echo 1 > /proc/sys/net/ipv4/ip_forward
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129865.html
摘要:二月份,微軟正式加入支持的行列,宣布容器服務支持。去年月,在亞馬遜彈性容器服務首次亮相。是年的最后一次重大更新,于月日正式推出。值得注意的公告包括亞馬遜網絡服務于八月份以白金會員最高級別加入了。 2017年的云計算市場,有一個領域獲得了空前的關注 -- Kubernetes。 Kubernetes可以追溯到2014年,當時Google公開發布了該項目的開源代碼。2017年,Kubern...
摘要:二月份,微軟正式加入支持的行列,宣布容器服務支持。去年月,在亞馬遜彈性容器服務首次亮相。是年的最后一次重大更新,于月日正式推出。值得注意的公告包括亞馬遜網絡服務于八月份以白金會員最高級別加入了。 2017年的云計算市場,有一個領域獲得了空前的關注 -- Kubernetes。 Kubernetes可以追溯到2014年,當時Google公開發布了該項目的開源代碼。2017年,Kubern...
摘要:在這一假設之下,是一個新奇的觀點編排才是容器生態的中心,而引擎就我們所知,只是一個開發工具。是特有的概念,但容器生態系統必須采用這個概念。 showImg(https://segmentfault.com/img/remote/1460000007157260?w=640&h=480); 開源項目 CRI-O ,其前身為 OCID ,官方簡介是 OCI-based implementa...
摘要:騰訊云在年底決定開發容器產品隨后組建容器技術團隊并進行技術選型通過對不同編排工具的分析對比最終選擇作為容器編排引擎并且迅速在年初推出容器解決方案為用戶提供托管的一站式服務。但是騰訊云最終選擇了現在看來這個選擇無比正確。Kubernetes 很火,一大批互聯網公司早已領先一步,搭建起專有的 PaaS平臺,傳統企業們看到的 Kubernetes的趨勢,亦不甘落后,在試水的道上一路狂奔。雖然,Ku...
摘要:面對平臺化的競爭,推出了調度引擎,但從未真正流行起來,因為整個行業更傾向于采用,這是第一次死亡它失去了平臺之戰。左耳朵耗子說過一段話,讓人深以為然:我清楚地看到了 Go 和 Docker 這兩種技術的生態圈發展過程。讓我收獲最大的并不是這些技術本身,而是技術的變遷和行業的發展。從中,我看到了非常具體的各種思潮和思路,這些更有價值...... 這些關鍵新技術,可以讓你拿到技術的先機。這些對一個...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20