Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save CalvinHartwell/ac4efc8b19950c9aac04fb8a471b5a7d to your computer and use it in GitHub Desktop.

Select an option

Save CalvinHartwell/ac4efc8b19950c9aac04fb8a471b5a7d to your computer and use it in GitHub Desktop.
cdk-ha
series: xenial
description: A nine-machine Kubernetes cluster, appropriate for production. Includes a three-machine etcd cluster and three Kubernetes worker nodes.
constraints: cores=8 mem=16G
machines:
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
services:
easyrsa:
annotations:
gui-x: '450'
gui-y: '550'
charm: cs:~containers/easyrsa-40
num_units: 1
to:
- 'kubernetes-master'
etcd:
annotations:
gui-x: '800'
gui-y: '550'
charm: cs:~containers/etcd-80
num_units: 3
to:
- '2'
- '3'
- '4'
flannel:
annotations:
gui-x: '450'
gui-y: '750'
charm: cs:~containers/flannel-56
options:
cidr: '172.19.0.0/16'
kubeapi-load-balancer:
annotations:
gui-x: '450'
gui-y: '250'
charm: cs:~containers/kubeapi-load-balancer-58
expose: true
num_units: 1
to:
- '6'
kubernetes-master:
annotations:
gui-x: '800'
gui-y: '850'
charm: cs:~containers/kubernetes-master-104
num_units: 2
to:
- '0'
- '1'
options:
channel: 1.10/stable
service-cidr: '172.18.0.0/16'
kubernetes-worker:
annotations:
gui-x: '100'
gui-y: '850'
charm: cs:~containers/kubernetes-worker-118
constraints: cores=4 mem=4G
expose: true
num_units: 3
options:
channel: 1.10/stable
to:
- '7'
- '8'
- '9'
### Monitoring ###
grafana:
charm: cs:xenial/grafana-7
num_units: 1
expose: true
to:
- '5'
prometheus:
charm: cs:xenial/prometheus-5
num_units: 1
to:
- '5'
telegraf:
charm: cs:xenial/telegraf-9
apache2:
charm: cs:xenial/apache2-24
num_units: 1
expose: true
options:
enable_modules: "headers proxy_html proxy_http"
elasticsearch:
charm: cs:xenial/elasticsearch-26
num_units: 1
filebeat:
charm: cs:xenial/filebeat-12
options:
logpath: '/var/log/*.log'
kube_logs: True
graylog:
charm: cs:xenial/graylog-12
num_units: 1
mongodb:
charm: cs:xenial/mongodb-46
num_units: 1
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
- - prometheus:grafana-source
- grafana:grafana-source
- - telegraf:prometheus-client
- prometheus:target
- - kubernetes-master:juju-info
- telegraf:juju-info
- - kubernetes-worker:juju-info
- telegraf:juju-info
- - apache2:reverseproxy
- graylog:website
- - graylog:elasticsearch
- elasticsearch:client
- - graylog:mongodb
- mongodb:database
- - filebeat:beats-host
- kubernetes-master:juju-info
- - filebeat:beats-host
- kubernetes-worker:juju-info
- - filebeat:logstash
- graylog:beats
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment