BlueMix免费Kubernetes-原生Docker容器停止供应转而提供Kubernetes服务

免费空间   2017年07月20日 18:10  

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权限,所以并不是那么坑爹.

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.)

文章出自:Holic博主,由部落编辑整理 ,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有14 位神马家族成员冒出泡来在农场开始干活了
  • 终于是正常点的文章了

    这是农场的第 1 块农田,部落批准 [Onediarys] 在[2017-7-20 18:48]开垦完成.
  • 目前只能通过虚拟卡来付款。真正的信用卡没有。没办法,没办法享用了。

    另外qi这个网站又回来了?

    BanYuner 回复:

    @Starrydots, 并没有,文章内容不是自己的,所以你还是知道的

    yearqp 回复:

    @Starrydots, 这文章不像以前qi的文风,可能是别人写的

    这是农场的第 2 块农田,部落批准 [Starrydots] 在[2017-7-20 19:17]开垦完成.
  • Guest

    ???又活了?

    这是农场的第 3 块农田,部落批准 [Guest] 在[2017-7-21 13:44]开垦完成.
  • 神奇 2

    一定要映射隨機的端口沒辦法指定 80 port 嗎? 那就沒辦法架站了 Orz

    神奇 回复:

    @神奇, 看了一下文檔 NodePort 免費,端口必須在 30000 – 32767 之間,如果要任意使用端口就要付費購買 Load balancer 或 Ingress 服務這樣理解沒錯吧 @@

    这是农场的第 4 块农田,部落批准 [神奇] 在[2017-7-22 00:23]开垦完成.
  • 四弦 5

    没有常识,docker容器和systemd到底能不能共存根本就没有定论,试图在docker里使用systemd就是完全不理解docker为何物,还把docker当VPS用;这也不能称之为bug,因为这完全是由docker的容器级别导致的

    Kung 回复:

    @四弦, 我写这篇文章的目的就是把IBM这个容器服务作为VPS使用而写的。没有考虑容器为何物。很抱歉不能写出让你满意的文章。你的评论让我受益匪浅。

    这是农场的第 5 块农田,部落批准 [四弦] 在[2017-7-23 11:25]开垦完成.
  • 143kk 2

    这几张图片不像qi的风格

    这是农场的第 6 块农田,部落批准 [143kk] 在[2017-7-24 22:24]开垦完成.
  • 梦寒 2

    这已经不是qi的一亩三分地了吗!哎!

    这是农场的第 7 块农田,部落批准 [梦寒] 在[2017-7-26 11:54]开垦完成.
  • 貌似不是qi的文章他写文章不是这样子的….

    丶小蓝丶 回复:

    @丶小蓝丶, 18585853123 电话&传真:0851-86653637 邮箱:924200@qq.com QI的联系方式

    这是农场的第 8 块农田,部落批准 [丶小蓝丶] 在[2017-7-29 21:32]开垦完成.
  • 没有蛀牙 1

    终于看到一篇“正经”一点的文章了

    这是农场的第 9 块农田,部落批准 [没有蛀牙] 在[2017-8-6 14:37]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部