boxmoe_header_banner_img

欢迎来到Kunger的博客

加载中

文章导读

试用政策已修改 IBM CLOUD Kubernetes 集群简易教程


avatar
Kunger 2017年11月1日 3.69k

早先BlueMix云计算各种限制极为宽松,其提供的免费Docker容器由于配置高,并且配带IP受到极大地好评,不管各位使用Docker做站还是用作其他用途,亦或是使用Docker搭建SS服务器,不过从今天起,这个时代过去了…(绑定信用卡仍可以享受免费的每月Docker配额和原生Docker服务.已知虚拟卡无法通过验证)
已经更新Kubernetes简单教程,可以用于部署部分程序.
抽奖模式开启 – 美国南部开出来的机器不一定是达拉斯的,可能是Softlayer的美国节点,德国开出来的可能是欧洲节点.

本文章已经长时间未更新,部分操作可能已经过时。感谢网友提醒,现在想要获取IP只能在BlueMix控制台查看节点IP。
[12月15日更新]
咋老是有人不看文章就发评论呢.我当然知道部分地区开不出容器服务了.
新的IBM云的免费政策如下:
新注册的用户默认为不限日期的开发者账户,只能使用极少数的Lite(轻量)级别的服务.包括256M的Cloud Foundry云引擎,Kubernetes集群,机器学习,API,数据分析,语言输出和翻译等服务.IBM似乎并不是很在意公有云业务,更多的中心放在基础设施服务上,也就是SoftLayer,IBM云可以和SoftLayer绑定,并且使用已购买的SoftLayer产品部署IBM云服务.
IBM云共享SoftLayer的基础设置意味着IBM云存在日本,新加坡等节点,但是不意味着你可以用这些节点..所以在选择Kubernetes地区时能看到日本你不需要太过惊讶,毕竟免费帐户是不能使用这些节点的.升级为Pay As You Go 账户并且选择即用即付式K8S集群可以选择服务位置.
有些人说开不出来集群,我测试了一下,目前可以开出集群,只有法国节点..请这么操作:登陆你的账号(仪表盘应该显示你在美国南部)->点击创建资源->Kubernetes集群->选择轻量级(免费的那个)->创建.应该会被创建在德国,集群服务器位置时法国..
如果创建成功会今日集群的节点管理页面,看到有节点正在部署就可以等着了,如果失败了就删除再试一次…
[2017年11月10日更新]
BlueMix正式更名IBM CLOUD 并正式停止免费试用账户.现在注册的用户均为Standard Account 享受256M的Cloud Foundry云引擎服务和Lite服务(机器学习等)Docker服务并不在免费用户和标准用户的范畴内,如要使用,必须绑卡升级为Pay as you Go账户.同时升级后将赠送200刀余额用于测试各种服务.

目前还不知道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的镜像并且映射端口

首先登陆到bluemix面板建立容器服务.

容器类型选择第一个,繁体中文叫叢集,简体中文叫集群,英文叫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如果能获取节点则证明配置成功了.然后执行

[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窗口.
接下来点击管理面板中的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镜像啊啥的,根据第三方说明操作.有问题可以falcomaa@qq.com邮件联系我,我提供力所能及的帮助服务.
(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.)

头图版权:幻想と文学の世界へ@Bison倉鼠 PID=63560631



评论(22)

查看评论列表
评论头像
挖站否 2017年07月03日
博主写得很好,我想转载分享给其它人。
评论头像
坤哥 2017年07月03日
可以转载啊.
评论头像
挖站否 2017年07月03日
多谢博主。
评论头像
google 2017年07月05日
127.0.0.1:88/ui 这个一直打不开啊
评论头像
坤哥 2017年07月06日
请截图CMD窗口
评论头像
google 2017年07月07日
美国节点的用不了,现在改成悉尼的就可以了
评论头像
will 2017年07月10日
这两天悉尼的节点一直是部署失败
评论头像
情缘 2017年12月15日
不出蔷无法注册
评论头像
坤哥 2017年12月15日
谷歌验证码的问题。不是IBM限制。
评论头像
情缘 2017年12月15日
经过测试已经无法在任何地区创建容器了,之前还看到有东京地区的容器。提交后无效之后,现在所有地区都无效了
评论头像
1046329594 2018年01月28日
什么信用卡能过验证?一直是Further imformation is needed,跟客服说了也没用。
评论头像
1046329594 2018年01月28日
什么信用卡能过验证?每次都是Further imformation is needed。
评论头像
坤哥 2018年02月18日
正规信用卡无法通过验证吗。我了解的中行的卡是可以过得。
评论头像
1046329594 2018年02月19日
我过不了。。
评论头像
1046329594 2018年02月19日
能帮我注册一个吗?
评论头像
坤哥 2018年02月23日
很遗憾不能。绑卡属于预授权交易。
评论头像
布楔 2018年02月23日
今天 试了下 按步子 弄不了 在那个http://localhost:8001/ui 怎么会有一个权限认证 怎么搞的[img]https://s1.ax1x.com/2018/02/23/9aV5t0.jpg[/img]
评论头像
坤哥 2018年02月26日
kubeconfig,检查一下这个文件是否存在。

发表评论

表情 颜文字
插入代码