隨著容器的火爆,各家雲廠商都推出自己的kubernetes服務,azure平台上提供的託管kubernetes服務為aks(azure kubernetes service)。aks服務本身免費,使用者只需為使用的node虛機付費,master節點由azure自動建立和維護,使用者也無需為master節點付費。下面是一張架構圖示:
(1)azureportal、cli建立集群演示;
(2)ssh登入到aks node節點。
(1)azureportal、cli建立集群演示
登入portal.azure.com,搜尋kubernetes service,選擇訂閱,資源組,為自己的cluster命名,dns name prefix指的是乙個用於連線k8s api server的dns字首,service principal可以建立乙個新的或者指定乙個已有的,azure中的服務本身也是一項需要驗證的身份,因為這項服務用到了平台的資源,因此每項服務都需要乙個service principal作為身份認證,具體可以參考中的說明。初次實驗,我們先都按照預設配置來,網路以及其他部分會慢慢在後面的文章新增,按照提示輸入相關欄位後點選建立,等待完成。建立過程中可能會發現,aks node 選機型的時候預設是一組相同配置的機型,比如你選的是standard ds2 v2,node count 為3,那麼後台就會建立3臺dsv2 vm,一組一樣的為乙個node pool,aks當然也支援管理多組不同配置的node pool(節點池),這部分可以參考同事的一篇文章:
建立完集群後,你會發現你的資源組中多了兩個而不是乙個資源組,這是因為每建立乙個aks集群都會產生兩個資源組,乙個是你剛建立的那個,記錄集群的資訊,另乙個是自動建立的第二個資源組,mc_myresourcegroup_myakscluster_location格式命令,裡面有集群所有節點的vm,儲存,網路資訊:
cli命令建立的話,需要 cli version 2.0.50以上,為了方便後面的操作,建議直接公升級到最新版本,使用者可以用 az --verison 檢視下當前版本,如果是windows使用者,可以按照 操作,macos 按照使用者如果是wsl(windows subsystem for linux (wsl))的更新,建議參照 去一步一步手動更新。
更新完成後我們嘗試在中國北2區域建立乙個集群,當然還是熟悉的套路,建立資源組,命令的具體引數可以參考涉及的引數名稱也是一目了然,可以跟著鏈結的介紹直接走一遍。
(2)ssh登入到aks node節點
ssh登入node是想重點介紹的,因為作為乙個託管的kubernetes平台服務,aks集群中的master和node都不提供公有ip位址供直接登入,但是使用者不可避免要登入到node上去檢視比如一些pod資訊,日誌,或者troubleshooting,aks提供的進入node的方式是:使用秘鑰對,在aks集群中建立乙個執行linux映象,如debian的pod,通過pod ssh 你要進入的那個node的私有ip去訪問這個node(具體演示如下:
a, 將你的aks集群資源組的資訊打包到變數cluster_resource_group中;
b, 檢視這個變數下的node vm資訊,記下這個你要登入的node的名稱;
c, 更新你的公鑰到node中,其中,--ssh-key-value ~/.ssh/id_rsa.pub 這裡輸入你本地存放公鑰的路徑資訊。
第二步是檢視你要登入的那台node的私有ip,可以用命令檢視,也可以在portal上的mc_開頭的資源組裡直接檢視:比如我要登入的這台就是10.240.0.6
第三步,
a,先在集群中執行乙個debian的容器,這個image建立完成後即啟動bash介面,bash中先安裝ssh客戶端:apt-get update && apt-get install openssh-client -y
b,與此同時開啟另乙個terminal視窗,kubectl get pods檢視在上一步中的pod名稱,然後將你的私鑰拷貝到pod中去:kubectl cp ~/.ssh/id_rsa aks-ssh-554b746bcf-kbwvf:/id_rsa
c,需要的話修改私鑰為唯讀,然後回到debian容器中執行ssh -i id_rsa azureuser@node 私有ip, by default 集群中每個node的登陸名都是azureuser。然後就可以登入到目標node了:
python初體驗(1) 基礎篇
我為什麼學習python 首先我的工作第一語言是c c 物件導向子集 選擇學習python一方面是因為看很多人都說python開發效率高,所以想驗證一下 另一方面,eric s.raymond在文章 如何成為一名黑客 中對python的推薦。還有一方面,python的設計哲學 用一種方法,最好是只有...
Go 初體驗 channel 1 基本用法
channel 分為兩種 1.無緩衝 channel 2.緩衝 channel 無緩衝 channel 的使用必須遵循乙個原則 推送和讀取必須同時存在,否則就發生死鎖 先上 這裡定義了乙個 int 型的通道 c1,然後通過輔助協程並行給 c1 推送 v 就是 i 然後又在主協程讀取。輸出 有緩衝 c...
php yield初體驗,遞迴遍歷資料夾並壓縮
php遍歷乙個資料夾並壓縮到zip private function zip path,zipfile private function addfiletozip path,ziparchive zip,root if root if strpos path,root 0 handler opend...