2
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Photon-ControllerでDockerを動かしてみる

参照ページ

基本的には、Photon Controlller Getting Started Guideに従って操作した手順記録です。参考にしていただければと思います。

設定

VMWare Playerで基盤環境作り

Photon Controlller Getting Started Guideでは、VMWare Fusion 8 or VMware Workstation 12を使用することが書いてあるが、すでにVMWare Playerをインストールして使っているのでこちらの環境を利用する。

これを試すためには、NATのネットワークを192.168.209.0/24のネットワークを使用する必要があります。
わかる人は、vmnetnat.confやvmnetdhcp.confを編集して設定するようにしてください。

ダウンロード

ESXiをダウンロードします。ユーザアカウントの登録とライセンス申請が必要です。簡単な操作です。
Download VMware vSphere Hypervisor (ESXi)のダウンロード

VMWare PlayerでESXiの起動

以下の環境を用意します。
- ディスク容量は、100G
- プロセッサ数は、4
- メモリは、12G
- ネットワークは、NAT
- ダウンロードしたESXiを選択
インストールが自動的に進んでいくので少し待ちます。
F11など押しながら進めてください。再起動したら、終了です。

IPアドレスは192.168.209.31にしてください。
SSHを有効にします。

ESXi Embedded Host Clientのインストール

ESXi Embedded Host Clientのダウンロード

ダウンロードしたファイルをインストールするは、ESXiに対して、SCP、SSHする必要があります。
私は、WinSCPを使って/tmp以下にファイルをアップし、WinSCPのコンソール機能を使って、インストールしました。

esxcli software vib install -v /tmp/esxui-signed.vib --force

https://192.168.209.31/ui/でアクセスできます。

Photon.exeのダウンロードと設定

Photon.exeをダウンロードします。
Photon.exeを適当なディレクトリに保存し、Windowsの環境設定で、ディレクトリをPATHに追加します。

Photon Controller Control Plane OVAのダウンロードと設定

Photon Controller Control Plane OVAをダウンロードします。2.5Gくらいです。
VMWare Playerで起動の設定をします。

設定を変更したいときはこちらを参考にしてください。


Basic Commands for VMware Photon and Docker

https://192.168.209.29/api/でアクセスできることを確認してください。

photonの設定

実行するコマンドは以下です。

C:>photon target set https://192.168.209.29:443
API target set to 'https://192.168.209.29:443'

C:>photon host create --username root --password <パスワード> --tag
CLOUD --address 192.168.209.31

1分近いくらい処理が行われます。

C:>photon host list
Using target 'https://192.168.209.29:443'
ID                                    State  IP              Tags
84031e89-dd9c-4c4d-a262-65a4b160d63d  READY  192.168.209.31  CLOUD

Total: 1

READYになっていれば成功のようです。

photonのプロジェクトの設定

C:\>photon tenant set demo
Using target 'https://192.168.209.29:443'
Tenant set to 'demo'

C:\>photon project set dev-project
Using target 'https://192.168.209.29:443'
Project set to 'dev-project'

c:\>photon project list
Using target 'https://192.168.209.29:443'
ID                                    Name         Limit             Usage
77fa7e6a-5b67-4909-b589-015d8761a7ee  dev-project  vm.memory 100 GB  vm.memory 0 GB
                                                   vm 5000 COUNT     vm 0 COUNT

Total projects: 1

c:\>photon tenant list
Using target 'https://192.168.209.29:443'
ID                                    Name
ea4af1ba-ba0a-4bba-b720-2f2c6ef6c8cf  demo

Total: 1

photonにクラスタイメージをアップロード

どれでも一つでよいようです。使いなれたものを利用すればよいと思います。
kubernetesswarmMesosをダウンロードします。

c:\>photon image create photon-kubernetes-vm-disk1.vmdk -n photon-kubernetes-vm.vmdk -i EAGER
Using target 'https://192.168.209.29:443'
Created image 'photon-kubernetes-vm.vmdk' ID: 17896ae7-3972-4ee9-8536-bcd723039534

c:\>photon image create photon-swarm-vm-disk1.vmdk -n photon-swarm-vm.vmdk -i EAGER
Using target 'https://192.168.209.29:443'
Created image 'photon-swarm-vm.vmdk' ID: 530eda74-a22f-46b0-b0c6-a29b8e56bdde

c:\>photon image create photon-mesos-vm-disk1.vmdk -n photon-mesos-vm.vmdk -i EAGER
Using target 'https://192.168.209.29:443'
Created image 'photon-mesos-vm.vmdk' ID: 8ed791ec-83f4-4044-a645-945cf7a3a8f9
c:\>photon image list
Using target 'https://192.168.209.29:443'
ID                                    Name                       State  Size(Byte)   Replication_type
530eda74-a22f-46b0-b0c6-a29b8e56bdde  photon-swarm-vm.vmdk       READY  85899345968  EAGER
8ed791ec-83f4-4044-a645-945cf7a3a8f9  photon-mesos-vm.vmdk       READY  85899345968  EAGER
17896ae7-3972-4ee9-8536-bcd723039534  photon-kubernetes-vm.vmdk  READY  85899345968  EAGER

Total: 3

kubernetesクラスタの設定

c:\>photon cluster create -n Kube2 -k KUBERNETES --dns 192.168.209.2 --gateway 192.168.209.2 --netmask 255.255.255.0 --master-ip 192.168.209.35 --cont
ainer-network 10.20.0.0/16 --etcd1 192.168.209.36 -s 2
Using target 'https://192.168.209.29:443'
etcd server 2 static IP address (leave blank for none):

Creating cluster: Kube2 (KUBERNETES)
  Slave count: 2

Are you sure [y/n]? y
Cluster created: ID = 0569bf82-8f93-4c09-8ba4-146bc238c3e8
Note: the cluster has been created with minimal resources. You can use the cluster now.
A background task is running to gradually expand the cluster to its target capacity.
You can run 'cluster show 0569bf82-8f93-4c09-8ba4-146bc238c3e8' to see the state of the cluster.

c:\>photon cluster list
Using target 'https://192.168.209.29:443'
ID                                    Name   Type        State     Slave Count
0569bf82-8f93-4c09-8ba4-146bc238c3e8  Kube2  KUBERNETES  CREATING  2

Total: 1
CREATING: 1

1分くらいしてからもう一度やると、
c:\>photon cluster list
Using target 'https://192.168.209.29:443'
ID                                    Name   Type        State  Slave Count
0569bf82-8f93-4c09-8ba4-146bc238c3e8  Kube2  KUBERNETES  READY  2

Total: 1
READY: 1

5分くらいで終わります。
https://192.168.209.31/ui/で見ていると、どのようにVMが作成され設定されているかわかります。
コマンドでしているように、master-ip、etcd-ipは、指定していますが、スレーブのサーバは指定していません。これはDHCPで自動的にIPが設定されるので、DHCPが稼働しておく必要があります。

etcd2を指定すると、etcサーバが2台起動します。

状況確認

このようになっています。
vmware_shot.PNG

slaveのIPは、192.168.209.129と、192.168.209.130になっています。DHCPでIPを取得しています。
それぞれ、ログインしてみてください。面白いですよ。
dockerでサービスが動いています。マイクロサービスですね。

■master

root@master-b94bdd6a-4bfc-462b-b9f7-4469080992cf [ ~ ]# docker ps
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS               NAMES
eb9fa8f88277        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube scheduler"   7 minutes ago       Up 7 minutes                            k8s_scheduler.2744e742_k8s-master-master-b94bdd6a-4bfc-462b-b9f7-4469080992cf_default_e4b00cc799dcf1b4b38d135ec92c50d5_7af2c055
c5cfd41f4788        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube apiserver"   7 minutes ago       Up 7 minutes                            k8s_apiserver.22190309_k8s-master-master-b94bdd6a-4bfc-462b-b9f7-4469080992cf_default_e4b00cc799dcf1b4b38d135ec92c50d5_c6f08db7
7b8cc1eb3749        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube controlle"   7 minutes ago       Up 7 minutes                            k8s_controller-manager.1598ee5c_k8s-master-master-b94bdd6a-4bfc-462b-b9f7-4469080992cf_default_e4b00cc799dcf1b4b38d135ec92c50d5_1e563e1a
8156c51cf848        gcr.io/google_containers/pause:0.8.0        "/pause"                 7 minutes ago       Up 7 minutes                            k8s_POD.e4cc795_k8s-master-master-b94bdd6a-4bfc-462b-b9f7-4469080992cf_default_e4b00cc799dcf1b4b38d135ec92c50d5_6f19d4e8
92be7e681954        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube proxy --m"   7 minutes ago       Up 7 minutes                            furious_turing
ab87a67d27c6        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube kubelet -"   7 minutes ago       Up 7 minutes                            elated_bell

■etcd

root@etcd-525a0b9a-f857-4732-a856-aaaf7eb127cf [ ~ ]# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
7655cc2c9bb1        quay.io/coreos/etcd:v2.0.8   "/etcd -name etcd0 -a"   8 minutes ago       Up 8 minutes        0.0.0.0:2379-2380->2379-2380/tcp, 7001/tcp, 0.0.0.0:4001->4001/tcp   etcd

■slave

root@slave-62b68844-ab24-48b0-bf99-cbae83a5bbd0 [ ~ ]# docker ps -a
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS               NAMES
2b1d37b02f8c        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube proxy --m"   7 minutes ago       Up 7 minutes                            hopeful_euclid
3f107cd9bd09        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube kubelet -"   7 minutes ago       Up 7 minutes                            backstabbing_curie

■slave

root@slave-1cfb19e7-5de1-4463-854b-b8ed911faaab [ ~ ]# docker ps -a
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS               NAMES
3569eb49a584        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube proxy --m"   6 minutes ago       Up 6 minutes                            suspicious_almeida
3030e2bcd4f3        gcr.io/google_containers/hyperkube:v1.0.1   "/hyperkube kubelet -"   6 minutes ago       Up 6 minutes                            stoic_visvesvaraya

※flannelのネットワークを持っているのは、masterとslaveです。

kubectl.exe のダウンロード

kubernetesからkubernetes.tar.gzをダウンロードし、解凍すると、
kubernetes\platforms\windows\amd64に保存されていますので、photon.exeと同様のディレクトリにコピーします。
PATHが設定されているディレクトリなので、kubectlが使用可能なると思います。

起動確認

以下からダウンロードします。
Apache Tomcat Replication Controller yml
Apache Tomcat Service yml

このファイルを使って起動の確認をします。

kubectl -s 192.168.209.35:8080 create -f photon-Controller-Tomcat-rc.yml
kubectl -s 192.168.209.35:8080 create -f photon-Controller-Tomcat-service.yml
kubectl -s 192.168.209.35:8080 get pods

swarm、mesos

また試したいと思っていますが

今日は、ここまでです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?