Juju를 통해 vmware 에 vm을 만들고 그 위에 kubernetes를 올려본다.
kubernetes charm은 https://jujucharms.com/canonical-kubernetes/ 에서 받을 수 있다.
기본적으로 juju deploy canonical-kubernetes 하면 vcenter를 통해 vm을 생성하고 그 위에 설치 하게 되지만,
vcenter내에 여러개의 cluster가 존재 할 경우 한 곳에 deploy하기 위해서는 bundle file을 수정한다.
아래와 같이 bundle.yaml 파일을 만들거나 위 링크에서 bundle.yaml을 다운 받아서 아래와 같이 수정한 뒤, juju deploy bundle.yaml 을 수행하면 된다
series: xenial
description: 'A nine-machine Kubernetes cluster, appropriate for production. Includes
a three-machine etcd cluster and three Kubernetes worker nodes.'
services:
easyrsa:
charm: cs:~containers/easyrsa-12
num_units: 1
to:
- zone=ans_compute
etcd:
charm: cs:~containers/etcd-40
num_units: 1
to:
- zone=ans_compute
flannel:
charm: cs:~containers/flannel-20
kubeapi-load-balancer:
charm: cs:~containers/kubeapi-load-balancer-16
num_units: 1
expose: true
to:
- zone=ans_compute
kubernetes-master:
charm: cs:~containers/kubernetes-master-35
num_units: 1
expose: true
options:
channel: 1.7/stable
to:
- zone=ans_compute
kubernetes-worker:
charm: cs:~containers/kubernetes-worker-40
num_units: 3
expose: true
options:
channel: 1.7/stable
to:
- zone=ans_compute
relations:
- - kubernetes-master:kube-api-endpoint
- kubeapi-load-balancer:apiserver
- - kubernetes-master:loadbalancer
- kubeapi-load-balancer:loadbalancer
- - kubernetes-master:kube-control
- kubernetes-worker:kube-control
- - kubernetes-master:certificates
- easyrsa:client
- - etcd:certificates
- easyrsa:client
- - kubernetes-master:etcd
- etcd:db
- - kubernetes-worker:certificates
- easyrsa:client
- - kubernetes-worker:kube-api-endpoint
- kubeapi-load-balancer:website
- - kubeapi-load-balancer:certificates
- easyrsa:client
- - flannel:etcd
- etcd:db
- - flannel:cni
- kubernetes-master:cni
- - flannel:cni
- kubernetes-worker:cni