GKE vs OpenStack Magnum

Preview:

Citation preview

GOOGLECONTAINER

ENGINEVS

OPENSTACK MAGNUM

OTSUKA, YUANYING/MOTOHIRO

自己紹介

OTSUKA, YUANYING▸ Twitter @yuanying

▸ OpenStack

▸ Magnum Core Reviewer

▸ Zun(Higgins) Core Reviewer

▸ NEC Solution Innovators

▸ OpenStack Community Team

WHAT IS OPENSTACK?

WHAT IS MAGNUM?

MAGNUM

$ gcloud container clusters -hUsage: gcloud container clusters [optional flags] <command> command may be create | delete | describe | get-credentials | list | resize | update | upgrade

Deploy and teardown Google Container Engine clusters.

commands: create Create a cluster for running containers. delete Delete an existing cluster for running containers. describe Describe an existing cluster for running containers. get-credentials Fetch credentials for a running cluster. list List existing clusters for running containers. resize Resizes an existing cluster for running containers. update Update cluster settings for an existing container cluster. upgrade Upgrade the Kubernetes version of an existing container cluster.

閑話休題

$ gcloud container clusters create help

$ gcloud container clusters create helpCreating cluster help...-

$ gcloud container clusters create helpCreating cluster help…-Created [https://container.googleapis.cokubeconfig entry generated for help.NAME ZONE MASTER_VERSIONhelp asia-east1-a 1.2.4

# Google Container Engine$ gcloud container clusters create -h

MAGNUM と GKE がどれだけ似ているのか?

HOW TO USE

1.CREATE BAYMODEL

2.CREATE BAY3.CONFIGURE KUBECTL

Hynek Moravec; modified by Generalpoteito - Wikimedia Commons, image under Creative Commons Attribution 2.5

BAY == CLUSTER

Adrian Otto

WHAT IS MAGNUM?

WHAT IS MAGNUM?

MAGNUM RESOURCES

BAYMODEL

BAY

NODE

BAY のテンプレート

KUBERNETES クラスター

クラスターを構成する ( 仮想 ) マシン

$

$ gcloud container clusters create k8s-cluster

$ magnum baymodel-create —name k8smodel \ —image-id fedora-atomic-latest \ —keypair-id default —external-network-id public \ —coe kubernetes$ magnum bay-create —name k8s-cluster —baymodel k8smodel

$ gcloud container clusters create k8s-cluster

$ magnum baymodel-create —name k8smodel \ —image-id fedora-atomic-latest \ —keypair-id default —external-network-id public \ —coe kubernetes$ magnum bay-create —name k8s-cluster —baymodel k8smodel

$ gcloud container clusters create k8s-cluster

Win!!

$ … ( 前略 ) …$ magnum bay-create —name k8s-cluster —baymodel k8smodel

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

$ openssl genrsa -out client.key 4096

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

$ cat > client.conf << END[req]distinguished_name = req_distinguished_namereq_extensions = req_extprompt = no[req_distinguished_name]CN = Your Name[req_ext]extendedKeyUsage = clientAuthEND

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

$ openssl req -new -days 365 \ -config client.conf \ -key client.key \ -out client.csr

$ magnum ca-sign --bay k8s-cluster --csr client.csr > client.crt$ magnum ca-show --bay k8s-cluster > ca.crt

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

$ kubectl config set-cluster k8sbay \ —server=${KUBERNETES_URL} \ --certificate-authority=$(pwd)/ca.crt$ kubectl config set-credentials client \ —certificate-authority=$(pwd)/ca.crt \ --client-key=$(pwd)/client.key \ —client-certificate=$(pwd)/client.crt$ kubectl config set-context k8sbay \ —cluster=k8sbay --user=client$ kubectl config use-context k8sbay

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

$ … ( 前略 ) …$ magnum bay-create —name k8s-cluster —baymodel k8smodel $ … ( 中略 ) …$ kubectl create -f nginx.yml

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

$ … ( 前略 ) …$ magnum bay-create —name k8s-cluster —baymodel k8smodel $ … ( 中略 ) …$ kubectl create -f nginx.yml

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

チョット面倒な手順があるけど、余計な部分を省けばトッテモ似てる!

$ … ( 前略 ) …$ magnum bay-create —name k8s-cluster —baymodel k8smodel $ … ( 中略 ) …$ kubectl create -f nginx.yml

$ gcloud container clusters create k8s-cluster$ kubectl create -f nginx.yml

Magnum GKE

ContainerOrchestration

KubernetesDocker Swarm

MesosKubernetes

Platform OpenStack GCP

Usability チョット悪い Magnum より良い

OSS Yes! Kubernetesありがとう

WHAT IS MAGNUM?

MAGNUM の今後▸ OpenStack 統合

▸ Keystone 連携▸ Kubernetes の認証▸ Keystone Trust

▸ Cinder 連携▸ Container Volume

▸ Neutron 連携▸ Container Network▸ LBaaS

WHAT IS MAGNUM?

MAGNUM の今後▸ ノードマネジメント

▸ gcloud container node-pools 相当機能▸ プロダクションでの利用

▸ Rackspace Carina / Docker Swarm▸ CERN / Kubernetes▸ NASA? / Mesos

THANKS!

Yuanying

OPENSTACK MAGNUM

Recommended