Check! Bluemix の Kubernetes Cluster への踏台コンテナをつくってみました!
こんばんは、 @dz_ こと大平かづみです。
Prologue - はじめに
先日開催した「もくもくクラウド自習室 (自習書付き!) #1」では、参加者の得意分野が十人十色でいろんな知見が得られ、主催の私もとても勉強になりました!
なかでも、メンバーさんから「Bluemix の Kubernetes 環境は1つなら無料!」と聞いて、これは早速試しましょっと!ヽ(☆’v`)★’v`)ノ
まずは Bluemix の Kubernetes に kubectl
でアクセスできる踏み台環境を、Docker で作ってみました。
IBM Bluemix Container Service の Kubernetes Cluster について
私自身、口頭で教えてもらって進めたので、ドキュメントを全然読めていません。ひきつづき、この辺のドキュメントを参考に進めようと思います。
- Kubernetes クラスターと IBM Bluemix Container Service について | IBM Bluemix Container Service
-
Kubernetes クラスター作成 | IBM Bluemix Container Service
- Lite: 2 CPU、4 GB メモリー、1 個のワーカー・ノードが付属する無料クラスター
それから、メンバーさんが試していたのはこの記事だそうです。
IBM Bluemix Container Service で Kubernetes Cluster を試してみる
Kubernetes Cluster を作成する
Bluemix にログインし、「カタログ」>「コンテナー」>「Kubernetes Cluster」を開きます。
無料のクラスタを作成するには「Lite」を選択して、進めてください。
クラスタの作成はしばらく時間がかかるので、下記に進みましょう。
Bluemix CLI + Kubectl が入ったコンテナづくり
作成した Kubernetes Cluster に接続するためのコンテナを作ります。
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
を展開・配置する方法もあるようです。
作ったコンテナで IBM Bluemix Container Service に接続する
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
を export
するよう促されるので、従ってください。
例:
export KUBECONFIG=<path-to-config-file>/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
にアクセスしてみましょう~
よし、Kubernetes のダッシュボードにアクセスできました!ヾ(・∀・)ノ
Epilogue - おわりに
余談ですが、最近ではネットワーク系のコマンドは一新されてるらしく、 netstat
の代わりに ss
コマンドを使うそうで!
CentOS では こんな感じでそれぞれ置き換わってるみたいです。
- Mobile Study: CentOS6, CentOS7 システムコマンド対応表
Ubuntu も ifconfig
がなくて ip address show
に代わってました!
さいごに、上記を進めるにあたり、もくもくクラウド自習室に来てくれたみなさんにいろいろ教えてもらいました。ギブ&テイク、すてきですね! ヽ(☆’v`)★’v`)ノ
Author And Source
この問題について(Check! Bluemix の Kubernetes Cluster への踏台コンテナをつくってみました!), 我々は、より多くの情報をここで見つけました https://qiita.com/dz_/items/4e99cd3f2d01e54405ea著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .