前回、vagrant x virtualboxの上でcoreos x 2を連結することに成功したので、今回はcore-01のほうにkubernetesをインストールしてみる。(本来ならkubernetesにcore-02もデプロイ先として認識させる必要があると思う。)
参考にしたのはcoreos本家サイトのkubernetsインストール手順part1
インストール
基本はサイトに書いてある通りでいいんだけど、微妙にタイポ?してるっぽいから改めて書き出す。
core@core-01 ~ $ sudo mkdir -p /opt/kubernetes
core@core-01 ~ $ sudo mkdir -p /opt/bin
core@core-01 ~ $ sudo chown -R core: /opt/kubernetes
core@core-01 ~ $ sudo chown -R core: /opt/bin
core@core-01 ~ $ cd /opt/kuberbetes
そんでもってkubernets
のバイナリを取得、/opt/bin
の下に置く。
core@core-01 /opt/kubernates $ wget https://github.com/kelseyhightower/kubernetes-coreos/releases/download/v0.0.1/kubernetes-coreos.tar.gz
...(snip)...
core@core-01 /opt/kubernates $ cd ../
core@core-01 /opt $ tar -C bin/ -xvf kubernates/kubernetes-coreos.tar.gz
apiserver
controller-manager
kubecfg
kubelet
proxy
続いてunit
の設定ファイルをgithubから引っ張ってくる。units
ディレクトリの中から必要なservice
ファイルだけ/etc/systemd/system/
ディレクトリ下にコピー。今回はdocker.service
はコピーしない。動かなくなる。
core@core-01 /opt $ cd kubernates/
kubernetes-coreos.tar.gz
core@core-01 /opt/kubernates $ git clone https://github.com/kelseyhightower/kubernetes-coreos.git
...(snip)...
core@core-01 /opt/kubernates $ sudo cp kubernetes-coreos/units/apiserver.service /etc/systemd/system/
core@core-01 /opt/kubernates $ sudo cp kubernetes-coreos/units/controller-manager.service /etc/systemd/system/
core@core-01 /opt/kubernates $ sudo cp kubernetes-coreos/units/kubelet.service /etc/systemd/system/
core@core-01 /opt/kubernates $ sudo cp kubernetes-coreos/units/proxy.service /etc/systemd/system/
更にcontroller-manager.serviceがそのままで動かないので、手を加える。
変更箇所のみ抜粋。
ExecStart=/opt/bin/controller-manager \
-etcd_servers http://127.0.0.1:4001 \
-master 127.0.0.1:8080 \
--logtostderr=true
etcd_servers
の設定はとりあえず動けばいいと割り切り中。もしかしたらこれhttp://172.17.8.1:4001
(ホストマシン)にすべきかもしれない。
ここで一応、etcd
サービス、docker
サービスの状態を確認。
core@core-01 /opt/kubernates $ sudo systemctl status etcd
● etcd.service - etcd
Loaded: loaded (/usr/lib64/systemd/system/etcd.service; disabled)
Drop-In: /run/systemd/system/etcd.service.d
└─20-cloudinit.conf
Active: active (running) since Mon 2014-09-08 11:05:07 UTC; 15min ago
Main PID: 554 (etcd)
...(snip)...
core@core-01 /opt/kubernates $ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib64/systemd/system/docker.service; disabled)
Active: inactive (dead)
Docs: http://docs.docker.io
よし、動いているぞ。先ほどコピーしたkubernetesのサービスを順次起動していく。
core@core-01 /opt/kubernates $ sudo systemctl daemon-reload
core@core-01 /opt/kubernates $ sudo systemctl start apiserver
core@core-01 /opt/kubernates $ sudo systemctl start controller-manager
core@core-01 /opt/kubernates $ sudo systemctl start kubelet
core@core-01 /opt/kubernates $ sudo systemctl start controller-proxy
各サービスのステータスを確認。
core@core-01 /opt/kubernates $ sudo systemctl status apiserver
core@core-01 /opt/kubernates $ sudo systemctl status controller-manager
core@core-01 /opt/kubernates $ sudo systemctl status kubelet
core@core-01 /opt/kubernates $ sudo systemctl status controller-proxy
全部「Active: active (running)」にはなった。
それではさっそくredis
のサービスを立ち上げちゃうんだからね!
core@core-01 /opt/kubernates $ mkdir kubernetes-coreos/pods
core@core-01 /opt/kubernates $ vim kubernetes-coreos/pods/redis.json
# redis.jsonをコピペ
core@core-01 /opt/kubernates $ kubecfg -h http://127.0.0.1:8080 -c kubernetes-coreos/pods/redis.json create /pods
Name Image(s) Host Labels
---------- ---------- ---------- ----------
redis dockerfile/redis / name=redis
redis.json
は公式サイトの例をまるまるコピー。dockerへのデプロイが終わるまで、ちょっと時間がかかる。なんか動いたっぽい…。
起動したコンテナのIPアドレスを確認。
core@core-01 /opt/kubernates $ ip a show docker0
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
inet 10.1.42.1/16 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::5484:7aff:fefe:9799/64 scope link
valid_lft forever preferred_lft forever
redis-cliで10.1.42.1
にアクセスできれば動いてるってことになりそうだな。
core@core-01 /opt/kubernates $ docker run -t -i dockerfile/redis /usr/local/bin/redis-cli -h 10.1.42.1
10.1.42.1:6379> set yukaary craft
OK
10.1.42.1:6379> get yukaary
"craft"
10.1.42.1:6379> quit
やったぜ。最後に立ち上げたpods
っていうのか?を消して今回はここでおしまい。
core@core-01 /opt/kubernates $ kubecfg -h http://127.0.0.1:8080 delete /pods/redisStatus
----------
success
まとめ
- 次回はcore-02も認識させてマルチホストにしたいな。
- 公式サイトのブログの
part2
がそれにあたると期待したい。
- 公式サイトのブログの
jourtnalctl
みるとetcdが警告とかエラーとかが結構あるんだが、大丈夫なのか…?- この環境にfigも入れたい。入るのかなあ。
No comments:
Post a Comment