IBM Bluemix 一直提供免费的配额,方便我们部署各种服务。尤其他支持Docker!
不过前一段时间Bluemix 突然不支持原生的Docker部署了,而是使用了Kubernetes容器!
部署方式上略有不同。本文即将详细介绍一下!!
历史文章:
Bluemix免费注册激活使用教程,不限制流量,2个IP你怕了么
账号注册
找之前的文章中我们详细介绍过。这里不再重复说明!!
目前使用免费服务需要绑定信用卡。
也有部分网友反馈新注册的Bluemix账号,无法创建Kubernetes集群。
免费限额
提供2个CPU核心 ,4G内存, 一个独立IP ~
可以建多个容器共享这个配置!
切换区域
我们可选区域有4个,悉尼,美国,德国,美国南部~
可以点击右上角切换到你想要的区域~ 不同的区域对应的一些API地址可能不一样。
本文演示的区域是 悉尼!!!
创建容器(集群)
1)点击 【容器】然后点击创建集群!!
2)集群类型:一定要选择【精简】因为只有这个是免费的。
含 2CPU / 4G内存 / 1个工作程序节点
3)点击【创建集群】后,我们可以看见状态显示 【正在部署】
4)大概10分钟左右,显示部署就绪了!!!
环境部署
其实在创建集群的时候,官网介绍了访问权限的获取具体方法~
但是还是有一些情况官网没提到~~~
提醒一下,不同的区域对应的登录地址不一样。
如图 【登录到Bluemix账号】中的代码就是你当前区域的登录网址,后面会使用到!
准备工作
其实主要是 Bluemix CLI、Kubernetes CLI 安装~
https://clis.ng.bluemix.net/ui/home.html
https://kubernetes.io/docs/tasks/tools/install-kubectl/
本文主要介绍如何使用CentOS6 X64完成部署。所以你得准备一台VPS~
没有?那么参考一下这个吧:Dply.co自动创建服务器的Chrome扩展
官方的文献介绍可以使用Windows系统安装Bluemix和Kubernetes ,博主未测试。
CentOS6 X64
首先我们演示一下CentOS6 X64系统获取访问权限!!
Bluemix CLI 安装
https://clis.ng.bluemix.net/ui/home.html
1 2 3 4 5 |
wget http://public.dhe.ibm.com/cloud/bluemix/cli/bluemix-cli/Bluemix_CLI_0.5.6_amd64.tar.gz tar zxvf Bluemix_CLI_0.5.6_amd64.tar.gz cd Bluemix_CLI ./install_bluemix_cli bluemix -v |
Kubernetes CLI 安装
https://kubernetes.io/docs/tasks/tools/install-kubectl/
1 2 3 4 |
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl chmod +x ./kubectl mv ./kubectl /usr/local/bin/kubectl kubectl version |
Container Service 安装
1 |
bx plugin install container-service -r Bluemix |
登录Bluemix 账号
1 |
bx login -a https://api.au-syd.bluemix.net |
输入邮箱,密码,选择账号,选择空间。完成登录!!
注意:不同的区域对应的网址是不一样的。本节开始部分有说明。
初始化 IBM Bluemix Container Service 插件
1 |
bx cs init |
将终端环境设置为集群
1 |
bx cs cluster-config mycluster |
执行完次命令,会显示一段儿黄色字体内容,复制这段内容执行一下。
验证工作程序节点
1 |
kubectl get nodes |
1 |
kubectl proxy |

1 |
kubectl proxy --port=8002 |
利用Nginx转发
由于我们使用的是Linux部署的环境,我本地的PC电脑不能愉快的方法仪表板~~
虽然启动Kubernetes能指定外网IP ……
1 |
kubectl proxy --port=8001 --address='ip地址' |
博主测试过会提示认证有问题~ 无法访问~
最后还是利用Nginx代理转发了一下,愉快的访问了~
1 2 3 4 5 6 7 |
server { listen 8000; server_name _; location / { proxy_pass http://127.0.0.1:8001; } } |
如何安装Nginx?网上教程非常多~
安装Nginx最简单的方法~
1 |
yum install -y nginx |
安装完成后,编辑配置文件
1 |
vim /etc/nginx/conf.d/default.conf |
1 2 3 4 5 6 7 |
server { listen 8000; server_name _; location / { proxy_pass http://127.0.0.1:8001; } } |
1 |
service nginx restart |
Kubernetes操作
经过一番折腾终于可以访问Kubernetes面板了~~~
创建Docker
点击右上角【+创建】
应用名称,随便~
容器镜像,可以是Docker Hub镜像~
容器数量,输入1
服务,选择外部。然后映射端口~
点击【显示高级选项】 看看其他配置~
所需CPU和内存,按需设置。不要超过你的免费限额~
以特殊身份运行,好多Docker镜像都需要root权限,这个建议勾选!
运行命令,某些Docker支持CMD命令执行。
环境变量,某些Docker支持ENV环境变量初始化。
创建Docker后,我们可以看见【内部入口】见下图,22端口映射的是 31679端口~
查看公网IP
命令行输入
1 |
bx cs clusters |
可以看到你的容器。复制容器的名称~
执行命令(mycluster换成你的容器名称)
1 |
bx cs workers mycluster |
然后就可以看见外网IP (public ip)
SSH连接
外网IP 和 端口都有了~ 连接上去看看吧~
本文演示的CentOS镜像,账号是 root 密码是 password
性能跑分
以下是脚本跑分情况。IO不错~
但是 PING 特别高 ~~~~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
---------------------------------------------------------------------- CPU model : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz Number of cores : 2 CPU frequency : 2600.100 MHz Total size of Disk : 485.1 GB (29.0 GB Used) Total amount of Mem : 4000 MB (3927 MB Used) Total amount of Swap : 2047 MB (1 MB Used) System uptime : 1 days, 5 hour 9 min Load average : 0.85, 0.82, 1.14 OS : CentOS 6.7 Arch : x86_64 (64 Bit) Kernel : 4.4.0-72-generic ---------------------------------------------------------------------- I/O speed(1st run) : 619 MB/s I/O speed(2nd run) : 595 MB/s I/O speed(3rd run) : 583 MB/s Average I/O speed : 599.0 MB/s ---------------------------------------------------------------------- Node Name IPv4 address Download Speed CacheFly 205.234.175.175 69.5MB/s Linode, Tokyo, JP 106.187.96.148 6.80MB/s Linode, Singapore, SG 139.162.23.4 6.60MB/s Linode, London, UK 176.58.107.39 4.95MB/s Linode, Frankfurt, DE 139.162.130.8 4.66MB/s Linode, Fremont, CA 50.116.14.9 3.67MB/s Softlayer, Dallas, TX 173.192.68.18 6.16MB/s Softlayer, Seattle, WA 67.228.112.250 6.21MB/s Softlayer, Frankfurt, DE 159.122.69.4 2.55MB/s Softlayer, Singapore, SG 119.81.28.170 5.41MB/s Softlayer, HongKong, CN 119.81.130.170 6.23MB/s ---------------------------------------------------------------------- |
Could not get accounts: Get https://accountmanagement.bluemix.net/v1/accounts: dial tcp 31.13.80.17:443: getsockopt: connection refused
乐哥 我把kube 升级到1.9版 之后重新进控之台进不去了 不知道新版的怎么玩
出这个了 https://s1.ax1x.com/2018/02/23/9aV5t0.jpg
求更新教程
记住一点千万别册集群一册了就重建不了了 浪费我二个地区的
玩了几天集群被删除了。。。
做了个容器,只要登陆一下简单配置一下就能访问k8s控制台了。希望能给其他人有帮助。docker pull cza1993/bluemix-console 说明:https://hub.docker.com/r/cza1993/bluemix-console/
bx cs cluster-config mycluster显示The client is not yet configured是啥意思
使用之前的有2个ip方法,再用现在这个方法会不会影响前面的2ip?
你之前的还能用?
能用,有绑定虚拟信用卡,网页版不能申请docker,可以用bx命令工具建立。
请问磁盘大小限制是什么?
可以直接使用命令kubectl proxy --port=8001 --address=外网IP --accept-hosts '.*'
而不会出现认证问题
谢谢大佬指点!!!!
换成k8s后,免费配额由512M内存升到4G了?
恩恩,更好玩了。
Error on cloud load balancer a972b1e31a35d11e7925b1200a5502c3 for service default/ssr with UID 972b1e31-a35d-11e7-925b-1200a5502c33: Failed to get available cloud provider IPs for load balancer services: Clusters with one node must use services of type NodePort. See https://console.ng.bluemix.net/docs/containers/container_index.html for details.
server {
listen 8000;
server_name _;
location / {
proxy_pass http://127.0.0.1:8001;
}
}
防火墙关闭了
kubectl proxy
Starting to serve on 127.0.0.1:8001
还 是打不开
检查一下 nginx 配置。服务是否正常运行。
反代 这一步 不行啊 ,访问是502
检查防火墙
只要开UDP端口,server一定无法创建,台坑了
kubectl proxy --port=8001 --address='ip地址'这IP是什么呀 为什么 我用bluemix外网IP连接不了
这个IP是你VPS的IP。 不是bluemix IP。
这个命令没啥用。
2核4g 是怎么计算的 我都没指定cpu 和内存
纠结啊 容器怎么建站 邦域名 出口映射端口都三万以上断口号
应该支持ENDPOINT绑定域名。暂时还没去琢磨。
正常绑域名要付费用Ingress或者Load Balancer,爱折腾的话可以试试通过Cloud Foundry转发一下。NodePort限制不适合建站,主要是跑点自用的东西吧~
补充三点:1、Kubernetes 如果是 1.5 版本,务必升级到 1.7;2、外网端口不要开UDP;3、不要一个容器完全分配 2 CPU和 4G RAM,这样可以大大提升创建成功的概率~
谢谢大佬提醒~~
以前bluemix docker提供的静态IP能指定外部端口,而nodeport类似arukas,已经不算独立IP了。我最近在windows上部署的,bluemix cli和kubectl支持用环境变量HTTP_PROXY来指定代理,操作很顺利,访问kubernetes界面时用ssh的端口转发功能大概更方便,真的不需要安装nginx啊。
如果你是本机部署,那么直接本机访问就可以了。
文章演示的是在其他Linux VPS上部署的,使用公网IP访问Kubernetes面板会提示认证错误。
等我有时间更新一下 Windows部署方面的内容,谢谢亲的反馈~
安装Kubernetes CLI
运行kubectl version这一步时总会报错。显示8080端口问题
The connection to the server localhost:8080 was refused - did you specify the right host or port?
继续后面的步骤看看。
不需要kubectl version这步。
对,这一步只不过是验证一下。
拿来编译aosp不知道行不行呢
应该没问题吧,如果比较懒的话直接部署一个系统。
这IO也是美滋滋~ 就是国内PING比较高~