您現在的位置是:首頁 > 資源

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

qi挖站否2021-09-18 09:03:34【資源】

早先BlueMix雲計算各種限制極為寬松,其提供的免費Docker容器由於配置高,並且配帶IP受到極大地好評,不管各位使用Docker做站還是用作其他用途,亦或是使用Docker搭建服務器,從今天起這個時代過去了…(綁定信用卡仍可以享受免費的每月Docker配額和原生Docker服務.已知虛擬卡無法通過驗證)

目前還不知道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部署需要進行構建,時間約為15-45分鐘.

本篇文章分享自Holic博主的原創,BlueMix的空間申請使用可能不同一般的免費空間,使用起來也有點復雜,但是參照本文的步驟基本上可以搞出一個Web應用出來。更多的建站資源與建站程序,你可以看看:

  1. VestaCP安裝與使用教程-免費的VPS和虛擬主機控制面板自帶郵局和DNS解析系統
  2. 用Fikker自建CDN-支持Https,頁面緩存,實時監控,流量統計,防CC攻擊
  3. WHMCS安裝與使用教程-WHMCS郵件發送與自定義WHMCS模板主題方法

PS:2017年9月9日更新,正在找免費空間的朋友,還可以試試日本優秀的免費空間主機Xrea:日本Xrea免費空間申請與使用-優秀穩定的免費主機1GB空間免費SSL。

一、bluemix Kubernetes創建

首先打開bluemix官網:https://console.ng.bluemix.net/,登陸到bluemix面板建立容器服務.

容器類型選擇第一個,繁體中文叫叢集,簡體中文叫集群,英文叫cluster,點擊建立,默認即可.只有精簡(Lite)是免費的,Standard是付費的,但是可以享受獨立的硬件以及自定義的子網和負載均衡等操作.

(推薦使用linux環境部署kubectl。因為Windows下的CMD由於字符集和部分操作的兼容性問題會導致部分命令排版錯誤. )

二、bluemix Kubernetes使用

首先需要准備兩個程序,分別是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目錄下並給予執行權限。(點擊放大)

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

然後獲取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配置文件:

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

選擇存取:

最後就可以下載了:

下載下來的是ZIP壓縮包,同樣包含****-mycluster.pem和kube-config-****-mycluster.yml兩個文件,使用如上方法配置即可:

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

接下來執行命令:kubectl get nodes如果能獲取節點則證明配置成功了.然後執行:

[root@node10276-env-2244137 .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窗口.

三、bluemix Kubernetes管理

接下來點擊管理面板中的Deployments菜單->右上角的 Create.

填寫容器詳細信息:

按要求填寫,也可以仿照我填寫,服務類型務必選擇External,否則將無法映射端口.(點擊放大)

端口一定要提前映射全,否則跑起來再改挺麻煩的!!另外,UDP端口和TCP端口不能同時映射,否則會出現成功建立容器但是沒有service的情況,這種情況下無法映射端口!!!,也就是說我圖上的操作是錯誤的,需要移除那個UDP端口!!

然後選擇show advanced options 來設置高級選項(主要是root權限需要開啟)同時設置一下CPU和RAM限制,最後選擇Deploy。

設置容器大小:

隨後便成功建立了一個Docker容器,如下圖,所有的項目均顯示綠色對勾且無紅色/橙色錯誤提示就說明你的容器成功跑起來了.接下來需要進行一些設置以便訪問S-S-H服務.由於我使用的jdeathe/centos-ssh鏡像為了安全考慮禁用了root賬戶/密碼登錄,同時我還懶得搞環境變量。

於是這裡需要使用命令通過Docker主控端進入容器進行S-S-H配置.這款鏡像由於比較新,而且沒有什麼錯誤,非常適合生產環境,如果你懶得處理,請使用treasureboat/ssh這個鏡像,這個鏡像默認密碼123456,用戶root,是CentOS6.6的鏡像.比較老,且有一些bug,但是不影響使用。

接下來我們要去SERVICE頁面查看我們映射的端口.在KubernetesUI中選擇Services and discovery->Service並且找到你創建的服務,服務名與你創建的容器名是一樣的.默認創建的Service名字前面的圖標是灰色的,不影響使用的.其中低位端口號是監聽端口,高位端口號是映射端口(監聽端口在上,映射端口在下)。

點擊右側的三個點->View/Edit YAML可以看到配置文件,但是沒有修改經驗請不要隨便修改…以免出現問題。

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

你的公網IP可以用 kubectl get nodes 看到,此外Bluemix後台,KubernetesUI也能找到,自己翻翻.使用公網IP:nodeport訪問S-S-H端口然後如果你用的是treasureboat的鏡像就可以用root/123456登陸了,如果你是jdeathe的鏡像需要進行別的操作.

如果你用的是其他人提供的比方說第三方的SS鏡像啊啥的,根據第三方說明操作.有問題可以falcomaa@qq.com郵件聯系我,我提供力所能及的幫助服務.(jdeathe的鏡像沒有開啟密碼登錄)

接下來的操作務必在Linux環境中執行,CMD會導致VIM操作無法正常被識別…使用kubectl get pods獲得正在運行的容器,POD的命名采用你創建時候起的名字-隨機字符,比如說我創建了centos6dev,那麼我的pod名就是centos6dev-3605066391-mrdrg這個.

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

然後使用以下命令進入shell

kubectl exec -it  -- /bin/bash

BlueMix免費Kubernetes集群申請使用教程-4GB內存支持Root權限登錄管理

需要修改/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用映射出的端口訪問一下S-S-H,應該就沒問題了.

四、總結

最後還是希望各位不要濫用這些優秀的服務,有些用戶可能會拿來跑S,我個人持保留意見,至於有些想跑KCP/FS等暴力加速插件的用戶我個人建議是不要搞過了,個人用用就算了,別拿來跑飛機場…

然後KCP/FS需要UDP端口。但是映射過TCP端口的service無法映射udp端口,給個提示kubernetes集群內網互通…當然還有更簡單的辦法,我這裡就不說了.善用谷歌的朋友一定會找到解決方案的。

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

Interserver Webhosting and VPS
Dynadot
TurnKey Internet
COM for just $5.98 at Namecheap