BlueMix免費Kubernetes-原生Docker容器停止供應轉而提供Kubernetes服務
早先BlueMix云計算各種限制極為寬松,其提供的免費Docker容器由于配置高,并且配帶IP受到極大地好評,不管各位使用Docker做站還是用作其他用途,亦或是使用Docker搭建SS服務器,不過從今天起,這個時代過去了...(綁定信用卡仍可以享受免費的每月Docker配額和原生Docker服務.已知虛擬卡無法通過驗證)
已經更新Kubernetes簡單教程,可以用于部署部分程序.抽獎模式開啟 - 美國南部開出來的機器不一定是達拉斯的,可能是Softlayer的美國節點,德國開出來的可能是歐洲節點.目前還不知道IBM為什么停止供應Docker容器,或許是為了將原生Docker逐步遷移到更加安全和便捷的Kubernetes服務.
也可能是無法忍受原生容器被大量濫用.總之IBM取消了免費的原生Docker容器.不過Kubernetes依然是Docker服務,并且提供了GUI面板以及命令行服務,目前openshift也是采用Kubernetes容器,不過IBM家的Kubernetes提供了root權限,所以并不是那么坑爹.
※BlueMix Kubernetes cluster免費版本(Lite版):在測試期間,Lite版可以免費創建,若綁定信用卡可以再建立原生Docker的基礎上繼續免費測試Kubernetes Lite版,Lite版本使用共享硬件,提供2個CPU核心和4G內存,以及一個獨立IP(可以映射給多個容器).Kubernetes并非即時開通,需要等待空閑服務器(審核?)才可以開通Kubernetes部署需要進行構建,時間約為15-45分鐘.
Kubernetes簡單教程 - 部署帶有SSH的鏡像并且映射端口
容器類型選擇第一個,繁體中文叫叢集,簡體中文叫集群,英文叫cluster,點擊建立,默認即可.只有精簡(Lite)是免費的,Standard是付費的,但是可以享受獨立的硬件以及自定義的子網和負載均衡等操作.
部署完是這樣的
※我推薦使用Linux環境部署kubectl,Windows下的CMD由于字符集和部分操作的兼容性問題會導致部分命令排版錯誤.
首先需要準備兩個程序,分別是Bluemix CLI和Kubernetes CLI,兩個程序均支持Windows/MAC/Linux,其中Bluemix CLI是可選項,如果不需要部署CloudFoundry應用或原生Docker則可以不安裝Bluemix CLI,但是Kubernetes CLI必須安裝,Kubernetes CLI不需要原生Docker支持,所以你的VPS和Windows都不需要預裝原生Docker.
Bluemix CLI : https://clis.ng.bluemix.net/ui/home.html
Kubernetes CLI : https://kubernetes.io/docs/tasks/tools/install-kubectl/
下載完成后的Kubernetes CLI是一個可執行文件,Windows環境下需要把Kubernetes CLI的目錄放到Path環境變量下,Linux只需要吧kubectl文件移動到bin目錄下并給予執行權限.
然后獲取Kubernetes配置文件和密鑰,目前有兩種方法獲得這些文件,一種是通過BluemixCLI命令獲得,另一種實在Bluemix web console中獲得.CLI命令是(該命令Windows/Linux通用):
- bx plugin install container-service -r Bluemix #下載Bluemix容器服務插件
- bx login -a https://api.au-syd.bluemix.net #指定服務可用區,目前支持Kubernetes的可用區有:美國南部,德國,悉尼
- bx cs init #初始化容器服務
- bx cs cluster-config mycluster #自動下載配置文件
- export KUBECONFIG=/Users/ibm/.bluemix/plugins/container-service/clusters/mycluster/kube-config-prod-mel01-mycluster.yml #將配置文件設定為環境變量,Linux可用
Windows需要再增加一步操作,由于Windows不支持export命令設置環境變量.Windows用于需要到C:\User\當前用戶名\.bluemix\plugins\container-service\clusters\mycluster目錄下找到
****-mycluster.pem和kube-config-****-mycluster.yml
將這兩個文件復制到C:\Users\當前用戶名\.kube目錄下,并且把kube-config-****-mycluster.yml改名為config,如若沒有.kube目錄請自行創建
※這一步操作同樣適用于Linux用戶,如果不希望使用export命令也可以如此操作.Linux目錄為 /home/你的用戶名/.bluemix/*** 和 /home/.kube/***如果是root用戶則在/root/.bluemix 或 /root/.kube下
在Bluemix web console中獲得Kubernetes配置文件:
下載下來的是ZIP壓縮包,同樣包含****-mycluster.pem和kube-config-****-mycluster.yml兩個文件,使用如上方法配置即可
接下來執行命令:kubectl get nodes
如果能獲取節點則證明配置成功了.然后執行
- [[email protected] .kube]# kubectl proxy --port=88
- Starting to serve on 127.0.0.1:88
如果返回Starting to server on ****:88 則成功,如果端口被占用,修改--port=后的參數,改成可用的端口.然后在瀏覽器訪問127.0.0.1:88/ui就可以打開Kubernetes的管理面板.接下來的操作在Kubernetes管理面板進行,請不要關閉shell窗口或者CMD窗口.
接下來點擊管理面板中的Deployments菜單->右上角的+Create.
※按要求填寫,也可以仿照我填寫,服務類型務必選擇External,否則將無法映射端口.
端口一定要提前映射全,否則跑起來再改挺麻煩的!!另外,UDP端口和TCP端口不能同時映射,否則會出現成功建立容器但是沒有service的情況,這種情況下無法映射端口!!!,也就是說我圖上的操作是錯誤的,徐要移除那個UDP端口!!
然后選擇show advanced options 來設置高級選項(主要是root權限需要開啟)同時設置一下CPU和RAM限制,最后選擇Deploy
隨后便成功建立了一個Docker容器,如下圖,所有的項目均顯示綠色對勾且無紅色/橙色錯誤提示就說明你的容器成功跑起來了.接下來需要進行一些設置以便訪問SSH服務.由于我使用的jdeathe/centos-ssh鏡像為了安全考慮禁用了root賬戶/密碼登錄,同時我還懶得搞環境變量,于是這里需要使用命令通過Docker主控端進入容器進行SSH配置.這款鏡像由于比較新,而且沒有什么錯誤,非常適合生產環境,如果你懶得處理,請使用treasureboat/ssh這個鏡像,這個鏡像默認密碼123456,用戶root.是CentOS6.6的鏡像.比較老,且有一些bug,但是不影響使用.
接下來我們要去SERVICE頁面查看我們映射的端口.在KubernetesUI中選擇Services and discovery->Service并且找到你創建的服務,服務名與你創建的容器名是一樣的.默認創建的Service名字前面的圖標是灰色的,不影響使用的.其中低位端口號是監聽端口,高位端口號是映射端口(監聽端口在上,映射端口在下)
點擊右側的三個點->View/Edit YAML可以看到配置文件,但是沒有修改經驗請不要隨便修改...以免出現問題
你的公網IP可以用 kubectl get nodes
看到,此外Bluemix后臺,KubernetesUI也能找到,自己翻翻.使用公網IP:nodeport訪問SSH端口然后如果你用的是treasureboat的鏡像就可以用root/123456登陸了,如果你是jdeathe的鏡像需要進行別的操作.如果你用的是其他人提供的比方說第三方的SS鏡像啊啥的,根據第三方說明操作.有問題可以[email protected]郵件聯系我,我提供力所能及的幫助服務.
(jdeathe的鏡像沒有開啟密碼登錄)
接下來的操作務必在Linux環境中執行,CMD會導致VIM操作無法正常被識別...使用kubectl get pods
獲得正在運行的容器,POD的命名采用你創建時候起的名字-隨機字符,比如說我創建了centos6dev,那么我的pod名就是centos6dev-3605066391-mrdrg這個.
然后使用命令 kubectl exec -it <pod name> -- /bin/bash
進入shell
需要修改/etc/ssh/sshd_config文件(請自己安裝習慣使用的編輯器),修改兩項分別是PermitRootLogin和PasswordAuthentication這兩項的值必須是yes.然后執行如下命令(僅限CentOS6,7不好使):service sshd restart
然后使用passwd命令修改root密碼,這個不用我教了,如果報錯/usr/share/cracklib/pw_dict.pwd: No such file or directory,請重新安裝(reinstall)cracklib-dicts passwd
※CentOS7 Docker可能會出現systemd不好用的BUG,這個沒辦法,我的解決方案是利用命令殺掉SSHD然后再重啟sshd.
最后回到PC,進入xshell用映射出的端口訪問一下SSH,應該就沒問題了.
最后還是希望各位不要濫用這些優秀的服務,有些用戶可能會拿來跑SS,我個人持保留意見,至于有些想跑KCP/FS等暴力加速插件的用戶我個人建議是不要搞過了,個人用用就算了,別拿來跑飛機場...然后KCP/FS需要UDP端口,但是映射過TCP端口的service無法映射udp端口,給個提示kubernetes集群內網互通...當然還有更簡單的辦法,我這里就不說了.善用谷歌的朋友一定會找到解決方案的...
補充內容:解決CentOS7下systemctl命令無法使用的問題
如果在原生Docker運行systemctl命令(用于啟動/停止/重啟服務的命令,也就是Service命令的升級)會提示Failed to get D-Bus connection: No connection to service manager.
這個問題被CentOS官方定義為一個BUG,會在之后版本中修復.對于使用原生Docker環境(Kubernetes基于原生Docker)的朋友可以采用以下方案解決,在執行docker run命令時加入Run command字段值為/usr/sbin/init
在KubernetesUI應當如下圖設置(Debian/Ubuntu不存在次BUG.)
文章出自:Holic博主,由部落編輯整理 ,版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。
您或許對下面這些文章有興趣: 本月吐槽辛苦排行榜
- Netlify優秀的靜態博客托管平臺-自動編譯部署生成Web網站可綁域名支持SSL
- CodeAnyWhere免費云IDE平臺2GB空間256MB內存-可綁域名與安裝WP
- 新IBM Bluemix免費容器空間申請與使用教程-可安裝運行WordPress
- Hyper.sh容器空間申請使用-可免費試用以及安裝CentOS和運行WordPress
- Heroku免費云空間512M內存可綁定域名-部署PHP環境安裝WordPress博客
- Docker.com官方推出Docker云空間-提供Docker服務代碼倉庫和空間服務
- OwnCloud私有云存儲搭建方案-VPS主機安裝和Docker部署OwnCloud
- cloudControl和dotcloud免費云空間搭建PHP和MysqL綁定域名和CDN加速
-
終于是正常點的文章了
[回復] -
???又活了?
[回復] -
這幾張圖片不像qi的風格
[回復] -
貌似不是qi的文章他寫文章不是這樣子的….
[回復] -
終于看到一篇“正經”一點的文章了
[回復] -
現在這東西,真心沒法玩了.
[回復] -
你不能不否認,如果你體重上不去,你肯定會存在一定的挑食問題,挑食是很不好的,均衡合理的營養,
[回復] -
-
操作比較復雜,可直接下載key.然后用% 登陸 通過隧道訪問管理頁面。 直接Lunix 就行
[回復] -
最近都不更新了?
[回復] -
樓主,我用我倉庫的index.html等等文件,build的時候為啥要報錯呢
[回復] -
這篇是qi新站的文章,qi估計是心血來潮轉過來了:qi新站:..com
[回復]