早先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应用出来。更多的建站资源与建站程序,你可以看看:
PS:2017年9月9日更新,正在找免费空间的朋友,还可以试试日本优秀的免费空间主机Xrea:日本Xrea免费空间申请与使用-优秀稳定的免费主机1GB空间免费SSL。
首先打开bluemix官网:https://console.ng.bluemix.net/,登陆到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容器,如下图,所有的项目均显示绿色对勾且无红色/橙色错误提示就说明你的容器成功跑起来了.接下来需要进行一些设置以便访问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可以看到配置文件,但是没有修改经验请不要随便修改…以免出现问题。
你的公网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这个.
然后使用以下命令进入shell
kubectl exec -it -- /bin/bash
需要修改/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集群内网互通…当然还有更简单的办法,我这里就不说了.善用谷歌的朋友一定会找到解决方案的。
文章出自:Holic博主,由挖站否编辑整理 ,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: %s = human-readable time difference 上午9:07
查看评论
免费版不支持MYSQL数据库!太坑了,只能用sqlite了
那可以用远程的Mysql数据库。
bluemix支持php和其他很多程序语言,但是免费版不支持MYSQL数据库!
在bluemix Kubernetes管理中创建的时候出现如下错误
现在是不让创建了。
这个…免费多久?
现在好像是不免费了。
操作比较复杂,可直接下载key.然后用% 登陆 通过隧道访问管理页面。 直接Lunix 就行
[回
这个方法不错。
说个事,那个不是有4个区么?每个区都可以建个集群。这么说来有四个ip
现在虚拟卡不能绑定了吧?我的之前的好像被解绑了。
之前可以用edu来注册,有一年的试用期,不用绑卡
qi大,你好,请问https://www.freehao123.com/phpapps/这个空间绑定域名该如何操作,用A记录解析到服务器ip还是CNAME解析到二级域名呢,我近期尝试了两种方式,都未能成功。是我哪里没有弄对吗?
好像是不支持绑定自己的域名 ,你看看这个说明:https://www.star.ne.jp/free/faq/domain_run_site.php
最近试了下OpenShift v3,按照原博客的方法部署。打开链接发现这段文字。搜了一下,发现不是个例,博主知道怎么解决吗
Application is not available
The application is currently not serving requests at this endpoint. It may not have been started or is still starting.
Possible reasons you are seeing this page:
The host doesn't exist. Make sure the hostname was typed correctly and that a route matching this hostname exists.
The host exists, but doesn't have a matching path. Check if the URL path was typed correctly and that the route was created using the desired path.
Route and path matches, but all pods are down. Make sure that the resources exposed by this route (pods, services, deployment configs, etc) have at least one pod running.
是不是被删除了?看提示好像是说不存在。
我又仔细查看了教程,无法理解您是怎么部署wordpress的。你fork的是https://github.com/ACGunion/openshiftv3_Test这个存储库,而这个存储库不包含wordpress源码。所以请问wp是在哪一步被部署的
这个不能搞Wordpress。
可你在这篇文章中写了啊,我仔细阅读了,没发现你在哪儿上传了wp的源码。https://www.freehao123.com/openshift-1g-php/
不是啊,刚创建呢
以前弄了5个用教育邮箱注册的docker 还能用 先mark下 :-)
不错,现在好像不行了。
点击部署集群后webconsole一直显示正在部署,本地用bx cs cluster-config mycluster 显示失败。“The cluster is not fully deployed yet. Wait. a few minutes, then try again.(E0030)。 然而等一会后,网页那边显示部署失败。