OPENSHIFT ORIGIN
MINISHIFT (BETA)
CONTAINER SIG MEET-UP 2017 SPRING
NAOYA HASHIMOTO
1
Run OpenShift locally
https://github.com/minishift/minishift
2
Develop Applications Locally in a
Containerized OpenShift Cluster
https://www.openshift.org/minishift/
3
OVERVIEW
を Laptop などローカル環境にデプロイすることを目的
としたコミュニティベースのプロジェクト
商用サポートが必要な場合は を選択
複数の OS (Linux, Mac OS, Windows) と Hypervisor をサポート
Minishift が VM を作成、OpenShift Cluster を Container としてデプロイ
VM は ISO から起動
OpenShift Origin のアーキテクチャ自体は同じ
前任は Vagrant ベースのアーキテクチャ( の名称)
Vagrant は安定性にかけ、各 OS をサポートすることが困難に
をきっかけに Minishift プロジェクトを開始、ベースコードは
から fork ※Vagrant ベースの は obsolete
OpenShift Origin
Container Development Kit (CDK)
Boot2Docker
All-In-One VM
Minikube
Minikube All-In-One VM
4
ARCHITECTURE
Hypervisor
Docker Engine
Virtual Machine (Boot2Docker)
Pod (Container)
haproxy-
router
docker-
registry
origin-
pod
origin
Docker Machine Drivers
Docker Machine
5
GNU/Linux Mac OS X Windows
KVM (default) xhyve (default) Hyper-V (default)
VirtualBox VirtualBox VirtualBox
VMware Fusion
OS & HYPERVISOR
6
SYSTEM REQUIREMENTS
Docker Machine driver
KVM driver
VirtualBox driver
VMware Fusion
Docker Machine
Minishift
OS
​Mac OS X
Windows
GNU/Linux
Hypervisor
​KVM
VirtualBox
VMware Fusion
Hyper-V
xhyve
7
INSTALLATION
全 OS 共通
Hypervisor をインストール
Docker Machine (Binary) をコピー
Docker Machine driver (Binary) をコピー
Minishift (Binary) をコピー
Mac OS X は Homebrew をサポート ※一番簡単
KVM の場合、Virtual Network (virsh net-list) に default がないと minishit
start がフェイル ※この Network は自動で作成されない
8
DOCKER MACHINE DRIVERS
VirtualBox: VirtualBox driver [o]
VMware Fusion: VMware Fusion driver [o]
KVM: KVM driver [x]
xyve: xhyve driver [x]
[o]: Minishfit に含まれる、[x]: Minishift に含まれない
Hyervisor が KVM or xhyve の場合、Docker Machine Driver を手動でイン
ストール
9
ANSIBLE ROLE ≠ OFFICIAL
# Playbook
$ mkdir -p minishift/roles
$ cd minishift/roles/
# Ansible Role clone
$ git clone https://github.com/hashnao/ansible-role-minishift
$ cd ../../
# Inventory
$ cat > hosts <<EOF
[host]
<your_host>
EOF
# Playbook
$ cat > site.yml <<EOF
---
- hosts: host
roles:
- { role: ansible-role-minishift }
EOF
# Playbook
$ ansible-playbook -i hosts site.yml
10
USAGE
minishift start: Minishift VM を作成、OpenShift Cluster をデプロイ
minishift stop: OpenShift Cluster を停止、VM を停止
※OpenShift Cluster の状態は保持される。
minishift delete: OpenShift cluster を削除、VM を削除
minishift console: ブラウザで OpenShift Console を起動
minishift ssh: Minishift VM に SSH でログイン
minishift openshift registry: Docker Registry の IP:Port を表示
11
DEMO
# Minishift
$ minishift start
# oc binary PATH
$ minishift oc-env
$ eval $(minishift oc-env)
# OpenShift
$ oc login -u developer -p developer
#
$ oc new-app https://github.com/openshift/nodejs-ex -l name=myapp
# Build Watch
$ oc logs -f bc/nodejs-ex
# Service (Route )
$ oc expose svc/nodejs-ex
#
$ minishift openshift service nodejs-ex -n myproject
# Minishift
$ minishift stop
12
REFERENCE
Github
Minishit
Docker Machine
Docker Machine KVM driver
Goodbye OpenShift All-In-One VM, Hello Minishift
ansible-role-minishift
https://github.com/minishift/minishift
https://docs.openshift.org/latest/minishift/index.html
https://docs.docker.com/machine/install-machine/
https://github.com/dhiltgen/docker-machine-kvm
https://blog.openshift.com/goodbye-openshift-all-in-one-vm-hello-
minishift/
https://github.com/hashnao/ansible-role-minishift
13
14

OpenShift Origin Minishift (Beta)

  • 1.
    OPENSHIFT ORIGIN MINISHIFT (BETA) CONTAINERSIG MEET-UP 2017 SPRING NAOYA HASHIMOTO 1
  • 2.
  • 3.
    Develop Applications Locallyin a Containerized OpenShift Cluster https://www.openshift.org/minishift/ 3
  • 4.
    OVERVIEW を Laptop などローカル環境にデプロイすることを目的 としたコミュニティベースのプロジェクト 商用サポートが必要な場合はを選択 複数の OS (Linux, Mac OS, Windows) と Hypervisor をサポート Minishift が VM を作成、OpenShift Cluster を Container としてデプロイ VM は ISO から起動 OpenShift Origin のアーキテクチャ自体は同じ 前任は Vagrant ベースのアーキテクチャ( の名称) Vagrant は安定性にかけ、各 OS をサポートすることが困難に をきっかけに Minishift プロジェクトを開始、ベースコードは から fork ※Vagrant ベースの は obsolete OpenShift Origin Container Development Kit (CDK) Boot2Docker All-In-One VM Minikube Minikube All-In-One VM 4
  • 5.
    ARCHITECTURE Hypervisor Docker Engine Virtual Machine(Boot2Docker) Pod (Container) haproxy- router docker- registry origin- pod origin Docker Machine Drivers Docker Machine 5
  • 6.
    GNU/Linux Mac OSX Windows KVM (default) xhyve (default) Hyper-V (default) VirtualBox VirtualBox VirtualBox VMware Fusion OS & HYPERVISOR 6
  • 7.
    SYSTEM REQUIREMENTS Docker Machinedriver KVM driver VirtualBox driver VMware Fusion Docker Machine Minishift OS ​Mac OS X Windows GNU/Linux Hypervisor ​KVM VirtualBox VMware Fusion Hyper-V xhyve 7
  • 8.
    INSTALLATION 全 OS 共通 Hypervisorをインストール Docker Machine (Binary) をコピー Docker Machine driver (Binary) をコピー Minishift (Binary) をコピー Mac OS X は Homebrew をサポート ※一番簡単 KVM の場合、Virtual Network (virsh net-list) に default がないと minishit start がフェイル ※この Network は自動で作成されない 8
  • 9.
    DOCKER MACHINE DRIVERS VirtualBox:VirtualBox driver [o] VMware Fusion: VMware Fusion driver [o] KVM: KVM driver [x] xyve: xhyve driver [x] [o]: Minishfit に含まれる、[x]: Minishift に含まれない Hyervisor が KVM or xhyve の場合、Docker Machine Driver を手動でイン ストール 9
  • 10.
    ANSIBLE ROLE ≠OFFICIAL # Playbook $ mkdir -p minishift/roles $ cd minishift/roles/ # Ansible Role clone $ git clone https://github.com/hashnao/ansible-role-minishift $ cd ../../ # Inventory $ cat > hosts <<EOF [host] <your_host> EOF # Playbook $ cat > site.yml <<EOF --- - hosts: host roles: - { role: ansible-role-minishift } EOF # Playbook $ ansible-playbook -i hosts site.yml 10
  • 11.
    USAGE minishift start: MinishiftVM を作成、OpenShift Cluster をデプロイ minishift stop: OpenShift Cluster を停止、VM を停止 ※OpenShift Cluster の状態は保持される。 minishift delete: OpenShift cluster を削除、VM を削除 minishift console: ブラウザで OpenShift Console を起動 minishift ssh: Minishift VM に SSH でログイン minishift openshift registry: Docker Registry の IP:Port を表示 11
  • 12.
    DEMO # Minishift $ minishiftstart # oc binary PATH $ minishift oc-env $ eval $(minishift oc-env) # OpenShift $ oc login -u developer -p developer # $ oc new-app https://github.com/openshift/nodejs-ex -l name=myapp # Build Watch $ oc logs -f bc/nodejs-ex # Service (Route ) $ oc expose svc/nodejs-ex # $ minishift openshift service nodejs-ex -n myproject # Minishift $ minishift stop 12
  • 13.
    REFERENCE Github Minishit Docker Machine Docker MachineKVM driver Goodbye OpenShift All-In-One VM, Hello Minishift ansible-role-minishift https://github.com/minishift/minishift https://docs.openshift.org/latest/minishift/index.html https://docs.docker.com/machine/install-machine/ https://github.com/dhiltgen/docker-machine-kvm https://blog.openshift.com/goodbye-openshift-all-in-one-vm-hello- minishift/ https://github.com/hashnao/ansible-role-minishift 13
  • 14.