参照ページ
基本的には、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にクラスタイメージをアップロード
どれでも一つでよいようです。使いなれたものを利用すればよいと思います。
kubernetes、swarm、Mesosをダウンロードします。
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台起動します。
状況確認
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
また試したいと思っていますが
今日は、ここまでです。