现在位置: 首页 > 免费空间 > 正文

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

2017年07月20日 评论数 21 ⁄ 被围观 12,925 个+

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如果能获取节点则证明配置成功了.然后执行

如果返回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博主,由部落编辑整理 ,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

共有 21 条留言 访客:21 条 博主:0 条

  1. qiuyming  2018.01.07 回复

    这篇是qi新站的文章,qi估计是心血来潮转过来了:qi新站:wzfou.com

  2. gump  2017.10.10 回复

    楼主,我用我仓库的index.html等等文件,build的时候为啥要报错呢

  3. 发抖喵小咪  2017.10.10 回复

    最近都不更新了?

  4. 优符  2017.09.19 回复

    操作比较复杂,可直接下载key.然后用SSH 登陆 通过隧道访问管理页面。 直接Lunix 就行

  5. 骤雨打新荷  2017.09.12 回复

    有谁知道Qi去了哪里,新站叫什么名字啊?

    Starrydots 回复:

    @骤雨打新荷, wzfou.com

    骤雨打新荷 回复:

    @Starrydots, 只能看到com ??

  6. 增肥  2017.08.31 回复

    你不能不否认,如果你体重上不去,你肯定会存在一定的挑食问题,挑食是很不好的,均衡合理的营养,

  7. 福利老幺  2017.08.10 回复

    现在这东西,真心没法玩了.

  8. 没有蛀牙  2017.08.06 回复

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

  9. 丶小蓝丶  2017.07.29 回复

    貌似不是qi的文章他写文章不是这样子的….

  10. 143kk  2017.07.24 回复

    这几张图片不像qi的风格

  11. 四弦  2017.07.23 回复

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

    Kung 回复:

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

  12. 神奇  2017.07.22 回复

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

    神奇 回复:

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

  13. Guest  2017.07.21 回复

    ???又活了?

  14. Starrydots  2017.07.20 回复

    目前只能通过虚拟卡来付款。真正的信用卡没有。没办法,没办法享用了。

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

    BanYuner 回复:

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

    yearqp 回复:

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

  15. Onediarys  2017.07.20 回复

    终于是正常点的文章了

给我留言

返回顶部
  • 一语惊坛(6月5日):担当新使命,展现新作为。 2019-05-23
  • 国家发改委官员:完成全年降电价目标很有信心 2019-05-23
  • 以保法治反腐公信力,以保中国社会普正义。 2019-05-18
  • 端午假期 广州旅游业吸金37亿 2019-05-18
  • 高清:俄罗斯世界杯揭幕战即将打响 球馆外戒备森严 2019-05-04
  • 我国社会组织正成为全球治理体系中的新生力量 2019-05-04
  • 印度网友很吃惊中国全年24小时不断电 除了台湾 2019-05-03
  • 乌鲁木齐市文庙特色活动庆端午 2019-04-27
  • 中国公民出入境排队将不超半小时--旅游频道 2019-04-27
  • 庄聪生:企业应正确处理“义”与“利”的关系 2019-04-22
  • 北京市场监管总局:网络促销不得先涨再折 2019-04-22
  • 从副科开始,即使没有贪污、索贿、受贿的勾当,也有行贿买官的勾当。 2019-04-18
  • 2017全国“创新社会治理典型案例”征集函 2019-04-18
  • 日照五莲山风景区(AAAA) 2019-04-10
  • 今年民歌节预计将有8000人前往 周边停车泊位有限 2019-04-10
  • 753| 172| 853| 995| 773| 712| 713| 745| 464| 695|