确认!我已经创建了一个用于 Bluemix 的 Kubernetes 集群的跳板容器!
晚上好,我是@dz_,我叫大平香子。
引子 – 开头
在最近举办的「自习云学习室(带自习书!)#1」活动中,参加者展示了各自的专长和知识,我作为组织者也从中学到了很多!
尤其是从成员那里听说了”Bluemix的Kubernetes环境一个是免费的!”,我立马决定试试看!ヽ(☆’v`)★’v`)ノ
我先用 Docker 创建了一个能够通过 kubectl 访问 Bluemix Kubernetes 的跳板环境。
关于IBM Bluemix容器服务中的Kubernetes集群。
因为没有自己阅读文档,仅凭口头指导就继续推进,所以我完全没看过文件。接下来,我打算继续参考这些文档来进行工作。
-
- Kubernetes クラスターと IBM Bluemix Container Service について | IBM Bluemix Container Service
Kubernetes クラスター作成 | IBM Bluemix Container Service
Lite: 2 CPU、4 GB メモリー、1 個のワーカー・ノードが付属する無料クラスター
然后,据说团队成员正在尝试的是这篇文章。
- Kubernetesを使ったスケーラブルなWordPress環境を構築してみた
尝试使用IBM Bluemix容器服务来测试Kubernetes集群。
创建一个 Kubernetes 集群
在Bluemix上登录,并打开”目录” > “容器” > “Kubernetes集群”。
请选择”Lite”以创建免费的集群,并继续进行。
因为创建集群需要一些时间,请继续向下进行。
创建一个包含Bluemix CLI和Kubectl的容器。
创建一个容器来连接已创建的Kubernetes集群。
我使用了以下的文件作为参考,来访问IBM Bluemix容器服务的集群界面。
- Setting up the CLI and API | IBM Bluemix Container Service
Dockerfile的释义
首先,我们准备一个 Dockerfile。
我以以下方式创建了一个基于Ubuntu的简单镜像,其中包含了Bluemix CLI和kubectl的安装。
8001端口是使用kubectl proxy启动的Kubernetes仪表板的默认端口。我们已经打开了它,以便从主机访问。
FROM ubuntu:16.04
RUN apt-get update -y && \
apt-get install -y \
curl \
sudo
ENV BLCLI_INSTALLER blcli_installer
RUN curl -fsSL -o ${BLCLI_INSTALLER} https://clis.ng.bluemix.net/install/linux && \
sh ./${BLCLI_INSTALLER} && \
rm ./${BLCLI_INSTALLER}
RUN bx plugin install container-service -r Bluemix
RUN 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 && \
sudo mv ./kubectl /usr/local/bin/kubectl
EXPOSE 8001
顺便说一下,我安装了sudo,因为它在Bluemix CLI的安装脚本中使用。但是,在容器中我不太想安装它呢~。请确保只在试用环境中使用。
对于感兴趣的用户,似乎还有一种将tar.gz文件自行解压和安装为离线安装的方法。
- オフライン・インストール | Bluemix CLI 入門
使用创建的容器连接到IBM Bluemix容器服务。
一旦 Dockerfile 完成,我们将在该目录下继续操作。
# イメージをビルドする
docker build -t bl_kubectl .
# 8001 ポートを接続して、コンテナを起動し、bash にはいる
docker run -it -p 8001:8001 --rm=true bl_kubectl /bin/bash
在容器中,使用 bl_kubectl 命令登录到 Bluemix,并初始化 Container Service 插件。
# Bluemix にログインする
bx login -a https://api.ng.bluemix.net
# bx コマンドの Container Service プラグインの初期化を行う
bx cs init
bx cs cluster-config <your-cluster-name>
当被要求导出 KUBECONFIG 时,请立即执行。
将以下内容用中文进行释义,只需要一种选项:
例:
将KUBECONFIG导出为<配置文件路径>/kube-config-hou02-xxx.yml。
然后,使用 kubectl proxy 命令启动仪表板。在此期间,请指定 –address 参数为 0.0.0.0。如果没有指定此参数,将无法从容器外部连接,默认为 127.0.0.1。
kubectl proxy --address='0.0.0.0' &
如果没有错误,请在主机的浏览器中尝试访问 127.0.0.1:8001/ui ~

结语 – 最后
顺便说一下,最近网络命令貌似有所变化,听说现在可以用 ss 命令代替 netstat 呢!
在CentOS中,对于移动学习而言,似乎是这样替代的:
– 移动学习:CentOS6,CentOS7 系统命令兼容表
在Ubuntu上,ifconfig没有了,取而代之的是ip address show!
最后,在推进以上事项时,我在Mokumoku Cloud自习室遇见了大家,并从各位那里得到了很多教导。互惠互利,太棒了!ヽ(☆’v`)★’v`)ノ