① 阿里雲pod方式部署的redis怎麼遠程訪問
登陸阿里雲賬號,提交個工單,幾個小時後看回答就知道可不可以。
② 如何訪問k8s集群內部署的mysql服務
雖然 kubernetes 社區一直在努力使得有狀態應用成為一等公民,也推出了 statefulset 控制器支持 pod 的順序部署,穩定的域名訪問和存儲訪問。但鑒於 MySQL 部署運維的多樣性和復雜性,在 kubernetes 上部署 MySQL 仍然要面臨眾多挑戰。
1、業務流量入口的配置方式
傳統虛擬機環境下,我們通過虛IP的方式,讓業務應用都配置事先定義的一個虛IP為鏈接資料庫的地址,然後由高可用服務保證虛IP始終能被路由到master資料庫。在kubernetes中,出現了一層網路插件屏蔽了底層網路拓撲,高可用服務管理虛IP的方式需要隨之適應調整,比如通過service結合標簽完成虛IP的漂移,但service本身是kubernetes提供的一項功能,其可靠性和性能都取決於kubernetes服務的穩定。以性能來說,service是kubeproxy組件通過配置iptables實現的,當iptables規則較多時不可避免的會產生時延,需要我們針對性的解決。
2、容器隔離帶來的監控視野問題
在 kubernetes 中,如果將 MySQL 製作為 container 運行在一個 pod 中,container 會將 MySQL 進程和運行環境隔離在一個單獨的 namespace 中。監控組件在獲取 MySQL 的一些 metirc 時,可能不得不進入與 MySQL 同一個 namespace 中,在部署和設計監控組件時需要考慮到這些限制。
3、存儲在 kubernetes 中,支持配置各種不同的存儲。
如果使用本地存儲 local persistent volume,則需要綁定 MySQL 在一個固定的節點,這就完全浪費了 kubernetes 靈活調度的天然優勢;而如果使用遠程共享存儲,確實是將 MySQL 進程與其存儲完全解耦,使得 MySQL 進程可以在任意節點調度,然而考慮到高 I/O 吞吐量的情況,就不是那麼美好了。設計時需要考量遠程存儲是否能夠滿足 MySQL 的帶寬要求。
4、高可用/備份恢復
kubernetes 提供的 statefulset 控制器只能提供最基本的部署,刪除功能,無法實現完善的 MySQL 集群高可用/備份恢復操作。對於有狀態應用的部署,仍需要定製開發,所以多數公司提供了定製的 operator 來完成應用容器的管理。比如 etcd operator,MySQL operator,後文將為大家詳述我測試使用 MySQL operator 的一些記錄。
③ 如何入門k8s
Kubernetes(簡稱K8S) 是Google開源的分布式的容器管理平台,方便我們在伺服器集群中管理我們容器化應用。
節點(Master node and Worker node)
節點通常指的就是伺服器,在k8s中有兩種節點:管理節點(Master Node)和工作節點(Worker Node)
管理節點(Master Node):負責管理整個k8s集群,一般由3個管理節點組成HA的架構。
工作節點(Worker Node):主要負責運行容器。命名空間(Namespace)
k8s命名空間主要用於隔離集群資源、隔離容器等,為集群提供了一種虛擬隔離的策略;默認存在3個名字空間,分別是默認命名空間 default、系統命名空間 kube-system 和 kube-public。Object
k8s 對象(Object)是一種持久化存儲並且用於表示集群狀態的實體。k8s 對象其實就是k8s自己的配置協議,總之我們可以通過定義一個object讓k8s根據object定義執行一些部署任務、監控任務等等。POD
Pod是 Kubernetes 部署應用或服務的最小的基本單位。一個Pod 封裝多個應用容器(也可以只有一個容器)、存儲資源、一個獨立的網路 IP 以及管理控制容器運行方式的策略選項。副本集(Replica Set,RS)
是一種控制器,負責監控和維護集群中pod的副本(replicas)數,確保pod的副本數是我們期望的樣子。部署(Deployment)
表示對k8s集群的一次更新操作,是k8s集群中最常用的Object,主要用於部署應用。支持滾動升級。服務(service)
是對應用的抽象,也是k8s中的基本操作單元,一個服務背後由多個pod支持,服務通過負載均衡策略將請求轉發到容器中。Ingress
是一種網關服務,可以將k8s服務通過http協議暴露到外部。無狀態應用 & 有狀態應用
無狀態應用指的是應用在容器中運行時候不會在容器中持久化存儲數據,應用容器可以隨意創建、銷毀;如果一個應用有多個容器實例,對於無狀態應用,請求轉發給任何一個容器實例都可以正確運行。例如:web應用
有狀態應用指的是應用在容器中運行時候需要穩定的持久化存儲、穩定的網路標識、固定的pod啟動和停止次序。例如:mysql資料庫
④ k8s怎麼把容器裡面的內容掛出來
普通Volume
最簡單的普通Volume是單節點Volume。它和Docker的存儲卷類似,使用的是Pod所在K8S節點的本地目錄。
第二種類型是跨節點存儲卷,這種存儲卷不和某個具體的K8S節點綁定,而是獨立於K8S節點存在的,整個存儲集群和K8S集群是兩個集群,相互獨立。
跨節點的存儲卷在Knetes上用的比較多,如果已有的存儲不能滿足要求,還可以開發自己的Volume插件,只需要實現Volume.go里定義的介面。如果你是一個存儲廠商,想要自己的存儲支持Knetes上運行的容器,就可以去開發一個自己的Volume插件。
2.persistent volume
它和普通Volume的區別是什麼呢?
普通Volume和使用它的Pod之間是一種靜態綁定關系,在定義Pod的文件里,同時定義了它使用的Volume。Volume是Pod的附屬品,我們無法單獨創建一個Volume,因為它不是一個獨立的K8S資源對象。
而Persistent Volume簡稱PV是一個K8S資源對象,所以我們可以單獨創建一個PV。它不和Pod直接發生關系,而是通過Persistent Volume Claim,簡稱PVC來實現動態綁定。Pod定義里指定的是PVC,然後PVC會根據Pod的要求去自動綁定合適的PV給Pod使用。
PV的訪問模式有三種:
第一種,ReadWriteOnce:是最基本的方式,可讀可寫,但只支持被單個Pod掛載。
第二種,ReadOnlyMany:可以以只讀的方式被多個Pod掛載。
第三種,ReadWriteMany:這種存儲可以以讀寫的方式被多個Pod共享。不是每一種存儲都支持這三種方式,像共享方式,目前支持的還比較少,比較常用的是NFS。在PVC綁定PV時通常根據兩個條件來綁定,一個是存儲的大小,另一個就是訪問模式。
剛才提到說PV與普通Volume的區別是動態綁定,我們來看一下這個過程是怎樣的。
這是PV的生命周期,首先是Provision,即創建PV,這里創建PV有兩種方式,靜態和動態。所謂靜態,是管理員手動創建一堆PV,組成一個PV池,供PVC來綁定。動態方式是通過一個叫Storage Class的對象由存儲系統根據PVC的要求自動創建。
⑤ 私有網段的k8s集群怎麼拉取阿里雲的鏡像
你好,如果是阿里雲vpc網段的的期間,阿里雲的容器鏡像服務會有對應區域的vpc鏡像地址,你可以打開阿里雲控制台,容器鏡像服務查看,如果是公司內部的私有網段伺服器,就需要聯系網路組的人員看看是否有對接阿里的專線,相應的開通策略,如何私有網段的機器可以訪問外網,直接拉取公網的鏡像地址就可以,情況很多,請確定後做分析,謝謝,望採納
⑥ K8s怎麼對象分布式存儲
K8s對象分布式存儲的方式很多,我們用的元核雲分布式塊存儲,用的就是ceph-csi對接的他們的rbd塊存儲。
⑦ 類似阿里雲、華為雲這樣的「雲」平台越來越多,雲平台到底是個什麼概念有哪些特點
三大品牌是以下三家:阿里騰訊和華為,也有很多私有部署的伺服器,或則其他特點的伺服器機房;無論從那個角度,大家都對雲服務的要求和適配群都有區分,尤其是阿里和騰訊,一般都是可以按照需求隨時增加;華為針對的集團客戶和有專業要求比較高的客戶,價格如何還待後面去交流,單純從技術角度,華為現在的針對一些物理的伺服器集群部署,有自己的一套軟體支撐,說起軟體,如果你的設備不支持k8s,你也無法實現這樣的部署,像My apps的bpm的平台軟體,就具備了這樣的
針對平台特點,下面用戶回答的很到位,我這邊直接復制,呈現價值即可
阿里雲案:
適合人群:中小企業
優點:阿里雲依託於阿里巴巴集團,通過對其豐富的網路資源進行整合,擁有自己的數據中心,是國內雲伺服器的大佬,目前,有北京、青島、杭州、香港機房可選,多線BGP接入;
缺點:價格相對較貴,硬碟I/O速度較差,硬碟不能直接擴容大小,必須新購買硬碟遷移數據。
騰訊雲:
適合人群:游戲客戶、開發者、APP用戶等。
優點:騰訊雲跟微信對接有天然優勢,目前用戶主要以游戲應用為主。騰訊雲伺服器使用公共平台操作系統,團隊完全負責雲主機的維護,並提供豐富配置類型虛擬機,用戶可以便捷地進行數據緩存、資料庫處理與搭建web伺服器等工作。騰訊對游戲和移動應用類客戶提供了較強的扶持政策,比較適合這類型的客戶使用。
缺點:普通中小客戶和中網站客戶難以通過審批,騰訊提供的配套設備也不適合這部分客戶使用。
華為雲:
適合人群:政府、大中型企業、銀行等大客戶。
優點:華為企業雲貫徹了華為公司"雲、管、端"的戰略方針,聚焦I層,使能P層,聚合S層,致力於為廣大企業、政府和創新創業群體提供安全、中立、可靠的IT基礎設施雲服務。華為企業雲依託業內的基礎設施,在全國設置多個雲服務區,部署多個雲計算中心資源池,主要以安全性為賣點,採用了分層和縱深防禦理念。
缺點:偶爾會出現不穩定的情況。
管理顧問,每天成長一點點,努力成就自己的優秀。
⑧ 如何進行K8S存儲系統
在K8S運行的服務,從簡單到復雜可以分成三類:無狀態服務、普通有狀態服務和有狀態集群服務。下面分別來看K8S是如何運行這三類服務的。
無狀態服務,K8S使用RC(或更新的Replica Set)來保證一個服務的實例數量,如果說某個Pod實例由於某種原因Crash了,RC會立刻用這個Pod的模版新啟一個Pod來替代它,由於是無狀態的服務,新啟的Pod與原來健康狀態下的Pod一模一樣。在Pod被重建後它的IP地址可能發生變化,為了對外提供一個穩定的訪問介面,K8S引入了Service的概念。一個Service後面可以掛多個Pod,實現服務的高可用。
普通有狀態服務,和無狀態服務相比,它多了狀態保存的需求。Kubernetes提供了以Volume和Persistent Volume為基礎的存儲系統,可以實現服務的狀態保存。
有狀態集群服務,與普通有狀態服務相比,它多了集群管理的需求。K8S為此開發了一套以Pet Set為核心的全新特性,方便了有狀態集群服務在K8S上的部署和管理。具體來說是通過Init Container來做集群的初始化工作,用Headless Service來維持集群成員的穩定關系,用動態存儲供給來方便集群擴容,最後用Pet Set來綜合管理整個集群。
要運行有狀態集群服務要解決的問題有兩個,一個是狀態保存,另一個是集群管理。我們先來看如何解決第一個問題:狀態保存。Kubernetes有一套以Volume插件為基礎的存儲系統,通過這套存儲系統可以實現應用和服務的狀態保存。
K8S的存儲系統從基礎到高級又大致分為三個層次:普通Volume,Persistent Volume和動態存儲供應。
1.普通Volume
最簡單的普通Volume是單節點Volume。它和Docker的存儲卷類似,使用的是Pod所在K8S節點的本地目錄。
第二種類型是跨節點存儲卷,這種存儲卷不和某個具體的K8S節點綁定,而是獨立於K8S節點存在的,整個存儲集群和K8S集群是兩個集群,相互獨立。
跨節點的存儲卷在Kubernetes上用的比較多,如果已有的存儲不能滿足要求,還可以開發自己的Volume插件,只需要實現Volume.go里定義的介面。如果你是一個存儲廠商,想要自己的存儲支持Kubernetes上運行的容器,就可以去開發一個自己的Volume插件。
2.persistent volume
它和普通Volume的區別是什麼呢?
普通Volume和使用它的Pod之間是一種靜態綁定關系,在定義Pod的文件里,同時定義了它使用的Volume。Volume是Pod的附屬品,我們無法單獨創建一個Volume,因為它不是一個獨立的K8S資源對象。
而Persistent Volume簡稱PV是一個K8S資源對象,所以我們可以單獨創建一個PV。它不和Pod直接發生關系,而是通過Persistent Volume Claim,簡稱PVC來實現動態綁定。Pod定義里指定的是PVC,然後PVC會根據Pod的要求去自動綁定合適的PV給Pod使用。
⑨ kubernetes最大支持多少節點
我先整體看Kubernetes些理念基本架構網路、資源管理、存儲、服務發現、負載均衡、高用、rollingupgrade、安全、監控等面向家簡單介紹Kubernetes些主要特性包括些需要注意問題主要目幫助家快速理解Kubernetes主要功能今研究使用具候所參考幫助1.Kubernetes些理念:用戶需要關需要少台機器需要關軟體(服務)運行所需環境服務需要關api何服務拆服務何使用api整合保證系統總按照用戶指定狀態運行僅僅提給供容器服務同提供種軟體系統升級式;保持HA前提升級系統用戶想要功能難實現些需要擔需要擔事情更支持微服務理念劃、細服務間邊界比lablel、pod等概念引入於Kubernetes架構參考官文檔致由些主要組件構包括Master節點kube-apiserver、kube-scheler、kube-controller-manager、控制組件kubectl、狀態存儲etcd、Slave節點kubelet、kube-proxy及底層網路支持(用Flannel、OpenVSwitch、Weave等)看微服務架構設計目前能支持單服務橫向伸縮Kubernetes未版本解決2.Kubernetes主要特性網路、服務發現、負載均衡、資源管理、高用、存儲、安全、監控等面向家簡單介紹Kubernetes些主要特性->由於間限能簡單些另外於服務發現、高用監控些更詳細介紹興趣朋友通篇文章解1)網路Kubernetes網路式主要解決幾問題:a.緊耦合容器間通信通Podlocalhost訪問解決b.Pod間通信建立通信網比隧道、路由Flannel、OpenvSwitch、Weavec.PodService及外部系統Service通信引入Service解決Kubernetes網路給每Pod配IP址需要Pod間建立鏈接基本需要處理容器主機間埠映射注意:Pod重建IP重新配所內網通信要依賴PodIP;通Service環境變數或者DNS解決2)服務發現及負載均衡kube-proxyDNSv1前Service含欄位portalippublicIPs別指定服務虛擬ip服務口機ippublicIPs任意指定集群任意包含kube-proxy節點portalIp通NAT式跳轉container內網址v1版本publicIPS約定廢除標記deprecatedPublicIPs僅用作向兼容portalIp改ClusterIp,serviceport定義列表增加nodePort項即應node映射服務埠DNS服務addon式需要安裝skydnskube2dnskube2dns通讀取KubernetesAPI獲取服務clusterIPport信息同watch式檢查service變及收集變信息並於ip信息提交給etcd存檔skydns通etcd內DNS記錄信息啟53埠外提供服務概DNS域名記錄servicename.namespace.tenx.domain,tenx.domain提前設置主域名注意:kube-proxy集群規模較能訪問性能問題考慮用其式替換比HAProxy直接導流Serviceendpints或者PodsKubernetes官修復問題3)資源管理3層資源限制式別Container、Pod、Namespace層Container層主要利用容器本身支持比DockerCPU、內存、磁碟、網路等支持;Pod面限制系統內創建Pod資源范圍比或者CPU、memory需求;Namespace層用戶級別資源限額包括CPU、內存限定Pod、rc、service數量資源管理模型-》簡單、通用、准確並擴展目前資源配計算相簡單沒資源搶占類強功能通每節點資源總量、及已經使用各種資源加權計算某Pod優先非配哪些節點沒加入節點實際用資源評估需要自schelerplugin支持其實kubelet已經拿節點資源要進行收集計算即相信Kubernetes續版本支持4)高用主要指Master節點HA式官推薦利用etcd實現master選舉Masterkube-apiserver保證至少master用實現highavailability外loadbalancer式提供入口種式用作ha仍未熟據解未更新升級ha功能張圖幫助家理解:etcd集群背景存kube-apiserver並用pod-master保證僅主master用同kube-shellerkube-controller-manager存且伴隨著kube-apiserver同間能套運行5)rollingupgradeRC始設計讓rollingupgrade變更容易通替換Pod更新service實現服務斷間化基本思路創建復本1新rc並逐步減少rc復本、增加新rc復本rc數量0其刪除通kubectl提供指定更新鏡像、替換pod間間隔rollback前執行upgrade操作同Kuberntes支持版本同部署並通lable進行區service變情況調整支撐服務Pod測試、監控新Pod工作情況6)存儲家都知道容器本身般數據進行持久化處理Kubernetes容器異退kubelet簡單基於原鏡像重啟新容器另外我同Pod運行容器經需要些容器間進行共享些數據KuberenetesVolume主要解決面兩基礎問題DockerVolume概念相簡單且目前支持限KubernetesVolume則著清晰定義廣泛支持其核理念:Volume目錄並同Pod所容器訪問目錄端用介質面內容則由使用特定Volume類型決定創建帶VolumePod:spec.volumes指定Pod需要volume信息spec.containers.volumeMounts指定哪些container需要用VolumeKubernetesVolume支持非廣泛貢獻者其添加同存儲支持反映Kubernetes社區躍程度emptyDir隨Pod刪除適用於臨存儲、災難恢復、共享運行數據支持RAM-backedfilesystemhostPath類似於Docker本Volume用於訪問些本資源(比本Docker)gcePersistentDiskGCEdisk-GoogleCloudEngine平台用awsElasticBlockStore類似於GCEdisk節點必須AWSEC2實例nfs-支持網路文件系統rbd-RadosBlockDevice-Cephsecret用通KubernetesAPI向Pod傳遞敏信息使用tmpfs(aRAM-backedfilesystem)persistentVolumeClaim-抽象PV申請資源需關存儲提供glusterfsiscsigitRepo根據自需求選擇合適存儲類型反支持夠總用款適合:)7)安全些主要原則:基礎設施模塊應該通APIserver交換數據、修改系統狀態且APIserver訪問端存儲(etcd)用戶同角色:Developers/ProjectAdmins/Administrators允許Developers定義secrets象並pod啟關聯相關容器secret例kubelet要pull私鏡像Kubernetes支持式:通dockerlogin.dockercfg文件進行全局授權通每namespace創建用戶secret象創建Pod指定imagePullSecrets屬性(統設置serviceAcouunt)進行授權認證(Authentication)APIserver支持證書、token、基本信息三種認證式授權(Authorization)通apiserver安全埠authorization應用所http請求AlwaysDeny、AlwaysAllow、ABAC三種模式其需求自實現Authorizer介面8)監控比較版本Kubernetes需要外接cadvisor主要功能node主機containermetrics抓取較新版本cadvior功能集kubelet組件kubelet與docker交互同外提供監控服務Kubernetes集群范圍內監控主要由kubelet、heapsterstoragebackend(influxdb)構建Heapster集群范圍獲取metrics事件數據pod式運行k8s平台單獨運行standalone式注意:heapster目前未1.0版本於規模集群監控比較便於較規模集群heapster目前cache式吃掉量內存要定獲取整集群容器信息信息內存臨存儲問題再加heaspter要支持api獲取臨metricsheapsterpod式運行容易現OOM所目前建議關掉cache並standalone式獨立k8s平台