mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-21 01:59:07 +00:00
Merge pull request #1669 from rneugeba/demo-up
Update DockerCon 2017 demo files
This commit is contained in:
commit
be47b771d0
@ -1,11 +1,12 @@
|
||||
This directory contains files used in moby demos.
|
||||
This directory contains files used in Moby/LinuxKit DockerCon 2017
|
||||
keynote demos. They mostly serve as examples and probably need
|
||||
adjustments to your specific environment.
|
||||
|
||||
# Prerequisites
|
||||
|
||||
Most of the scripts/files assume you are on a Mac.
|
||||
|
||||
- Recent Docker for Mac installed (edge, nightly, master channel)
|
||||
For some of the demo setup, you need at least 17.05.0-ce-rc1
|
||||
- Recent Docker for Mac installed (We used 17.05.0-ce-rc1-mac8 from the edge channel)
|
||||
- For the GCP portion: `brew install google-cloud-sdk`
|
||||
- Infrakit: Clone [infrakit](https://github.com/docker/infrakit) and
|
||||
the [GCP plugin](https://github.com/docker/infrakit.gcp) for
|
||||
@ -25,16 +26,6 @@ gcloud auth application-default login
|
||||
|
||||
You may also want to create ssh-keys and upload them. See the [Generating a new SSH key-pair section](https://cloud.google.com/compute/docs/instances/connecting-to-instance)
|
||||
|
||||
One time configuration of the network:
|
||||
```
|
||||
gcloud compute networks create rneugeba-demo --mode auto
|
||||
gcloud compute networks subnets list
|
||||
# get IP subnet for rneugeba-demo
|
||||
gcloud compute firewall-rules create rneugeba-demo-internal --network \
|
||||
rneugeba-demo --allow tcp,udp,icmp --source-ranges 10.128.0.0/9
|
||||
```
|
||||
The firewall setup means that all our projects networks can talk to the demo network.
|
||||
|
||||
|
||||
# Expose VMs ports on localhost
|
||||
|
||||
@ -44,6 +35,6 @@ You can use a `socat` container to forward ports from the VM to localhost (via D
|
||||
```
|
||||
And then run:
|
||||
```
|
||||
docker run --rm -t -d -p 8080:8080 socat tcp-listen:8080,reuseaddr,fork tcp:192.168.65.100:80
|
||||
docker run --rm -t -d -p 8080:8080 socat tcp-listen:6379,reuseaddr,fork tcp:192.168.65.100:6379
|
||||
```
|
||||
This forwards local port `8080` to `192.168.65.100:80`, so if you start, say the `intro` image, run `moby run -ip 196.168.65.100 intro`
|
||||
This forwards local (host) port `6379` to `192.168.65.100:6379`, so if you start, say the `redis-os` image, run `moby run -ip 196.168.65.100 redis-os`.
|
||||
|
@ -44,9 +44,23 @@ You can perform rolling updates, by for example, switching the kernel version in
|
||||
|
||||
## Infrakit GCP setup
|
||||
|
||||
Note: This setup is somewhat specific to our GCP setup (IP addresses
|
||||
and account info) and needs to be adjusted to your setting. The
|
||||
configuration is documented in the top-level README.md.
|
||||
You need to do the general setup as described in the demo [README](../README.md). Specifically, you need the `CLOUDSDK_*` environment variables set and you need to have authenticated with GCP.
|
||||
|
||||
Note, the demo uses static IP addresses and they are specific to our
|
||||
setup. The IP addresses need to be changed in the `infrakit-gcp.json`
|
||||
config file.
|
||||
|
||||
In order to use the static IP addresses we created a custom network:
|
||||
```
|
||||
gcloud compute networks create rneugeba-demo --mode auto
|
||||
gcloud compute networks subnets list
|
||||
# get IP subnet for rneugeba-demo
|
||||
gcloud compute firewall-rules create rneugeba-demo-internal --network \
|
||||
rneugeba-demo --allow tcp,udp,icmp --source-ranges 10.132.0.0/9
|
||||
```
|
||||
The firewall setup means that all our projects networks can talk to the demo
|
||||
network.
|
||||
|
||||
|
||||
Build the image and upload it:
|
||||
```
|
||||
|
@ -67,8 +67,18 @@ services:
|
||||
- CAP_SETUID
|
||||
- CAP_SETGID
|
||||
net: host
|
||||
- name: node_exporter
|
||||
image: "linuxkit/node_exporter:0c7c1588e4cbce9cc946c1a84d3902b38b4b7ada"
|
||||
capabilities:
|
||||
- all
|
||||
net: host
|
||||
pid: host
|
||||
binds:
|
||||
- /proc:/host/proc
|
||||
- /sys:/host/sys
|
||||
- /:/rootfs
|
||||
- name: etcd
|
||||
image: "linuxkit/etcd"
|
||||
image: "moby/etcd"
|
||||
capabilities:
|
||||
- CAP_CHOWN
|
||||
- CAP_SETUID
|
||||
@ -83,4 +93,8 @@ services:
|
||||
|
||||
outputs:
|
||||
- format: kernel+initrd
|
||||
- format: gcp-img
|
||||
- format: gcp
|
||||
project: docker4x
|
||||
bucket: rolf
|
||||
family: moby-demo
|
||||
replace: true
|
||||
|
@ -14,9 +14,9 @@
|
||||
"Plugin": "instance-hyperkit",
|
||||
"Properties": {
|
||||
"kernel+initrd": "etcd",
|
||||
"Disk" : 1024,
|
||||
"Disk" : 2048,
|
||||
"CPUs" : 1,
|
||||
"Memory" : 512
|
||||
"Memory" : 1024
|
||||
}
|
||||
},
|
||||
"Flavor": {
|
||||
|
@ -1,4 +1,4 @@
|
||||
#! /bin/sh
|
||||
docker build -t linuxkit/etcd .
|
||||
docker build -t moby/etcd .
|
||||
|
||||
docker build -t etcd.local -f Dockerfile.local .
|
||||
|
@ -10,7 +10,8 @@ mkdir -p $INFRAKIT_HOME/cli
|
||||
|
||||
infrakit-flavor-vanilla &
|
||||
infrakit-instance-hyperkit &
|
||||
infrakit-instance-gcp --project docker4x --zone europe-west1-d &
|
||||
infrakit-instance-gcp --project $CLOUDSDK_CORE_PROJECT --zone $CLOUDSDK_COMPUTE_ZONE &
|
||||
|
||||
|
||||
# start the group plugin in the foreground. If it exits, it will take
|
||||
# the others down as well.
|
||||
|
1
projects/demo/prom/.gitignore
vendored
Normal file
1
projects/demo/prom/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/data
|
2
projects/demo/prom/Dockerfile
Normal file
2
projects/demo/prom/Dockerfile
Normal file
@ -0,0 +1,2 @@
|
||||
FROM prom/prometheus
|
||||
ADD prometheus.yml /etc/prometheus/
|
2
projects/demo/prom/Dockerfile.us-central1-f
Normal file
2
projects/demo/prom/Dockerfile.us-central1-f
Normal file
@ -0,0 +1,2 @@
|
||||
FROM prom/prometheus:v1.6.0
|
||||
ADD prometheus-us-central.yml /etc/prometheus/prometheus.yml
|
3
projects/demo/prom/build-prom.sh
Executable file
3
projects/demo/prom/build-prom.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#! /bin/sh
|
||||
|
||||
docker build -t moby/prom-us-central1-f -f Dockerfile.us-central1-f .
|
62
projects/demo/prom/etcd-prom-us-central1-f.yml
Normal file
62
projects/demo/prom/etcd-prom-us-central1-f.yml
Normal file
@ -0,0 +1,62 @@
|
||||
kernel:
|
||||
image: "mobylinux/kernel:4.9.x"
|
||||
cmdline: "console=ttyS0 page_poison=1"
|
||||
init:
|
||||
- linuxkit/init:63eed9ca7a09d2ce4c0c5e7238ac005fa44f564b
|
||||
- mobylinux/runc:b0fb122e10dbb7e4e45115177a61a3f8d68c19a9
|
||||
- mobylinux/containerd:18eaf72f3f4f9a9f29ca1951f66df701f873060b
|
||||
- mobylinux/ca-certificates:eabc5a6e59f05aa91529d80e9a595b85b046f935
|
||||
onboot:
|
||||
- name: sysctl
|
||||
image: "linuxkit/sysctl:1f5ec5d5e6f7a7a1b3d2ff9dd9e36fd6fb14756a"
|
||||
net: host
|
||||
pid: host
|
||||
ipc: host
|
||||
capabilities:
|
||||
- CAP_SYS_ADMIN
|
||||
readonly: true
|
||||
- name: dhcpcd
|
||||
image: "linuxkit/dhcpcd:48e249ebef6a521eed886b3bce032db69fbb4afa"
|
||||
binds:
|
||||
- /var:/var
|
||||
- /tmp/etc:/etc
|
||||
capabilities:
|
||||
- CAP_NET_ADMIN
|
||||
- CAP_NET_BIND_SERVICE
|
||||
- CAP_NET_RAW
|
||||
net: host
|
||||
command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
|
||||
- name: metadata
|
||||
image: "linuxkit/metadata:c5567e65e9125f0a4c4b8cb9d56a86377be62652"
|
||||
binds:
|
||||
- /dev:/dev
|
||||
- /var:/var
|
||||
- /tmp/etc/resolv.conf:/etc/resolv.conf
|
||||
net: host
|
||||
capabilities:
|
||||
- CAP_SYS_ADMIN
|
||||
services:
|
||||
- name: rngd
|
||||
image: "mobylinux/rngd:3dad6dd43270fa632ac031e99d1947f20b22eec9"
|
||||
capabilities:
|
||||
- CAP_SYS_ADMIN
|
||||
oomScoreAdj: -800
|
||||
readonly: true
|
||||
- name: prometheus
|
||||
image: "moby/prom-us-central1-f"
|
||||
binds:
|
||||
- /dev:/dev
|
||||
- /var/lib/misc:/data
|
||||
capabilities:
|
||||
- all
|
||||
net: host
|
||||
trust:
|
||||
image:
|
||||
- mobylinux/kernel
|
||||
outputs:
|
||||
- format: kernel+initrd
|
||||
- format: gcp
|
||||
project: docker4x
|
||||
bucket: rolf
|
||||
family: moby-demo
|
||||
replace: true
|
19
projects/demo/prom/prometheus-local.yml
Normal file
19
projects/demo/prom/prometheus-local.yml
Normal file
@ -0,0 +1,19 @@
|
||||
global:
|
||||
|
||||
scrape_configs:
|
||||
# - job_name: 'prometheus'
|
||||
# scrape_interval: 20s
|
||||
# static_configs:
|
||||
# - targets: ['localhost:9090']
|
||||
|
||||
# Scrape the Node Exporter
|
||||
- job_name: 'node'
|
||||
scrape_interval: 20s
|
||||
static_configs:
|
||||
- targets: ['localhost:9100', 'localhost:9101', 'localhost:9102', 'localhost:9103', 'localhost:9104']
|
||||
|
||||
# # Scrape the containerd exporter
|
||||
# - job_name: 'containerd'
|
||||
# scrape_interval: 15s
|
||||
# static_configs:
|
||||
# - targets: ['192.168.65.200:13337', '192.168.65.201:13337', '192.168.65.202:13337', '192.168.65.203:13337', '192.168.65.204:13337']
|
13
projects/demo/prom/prometheus-us-central.yml
Normal file
13
projects/demo/prom/prometheus-us-central.yml
Normal file
@ -0,0 +1,13 @@
|
||||
global:
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
scrape_interval: 20s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
# Scrape the Node Exporter
|
||||
- job_name: 'node'
|
||||
scrape_interval: 20s
|
||||
static_configs:
|
||||
- targets: ['10.128.0.200:9100', '10.128.0.201:9100', '10.128.0.202:9100', '10.128.0.203:9100', '10.128.0.204:9100']
|
13
projects/demo/prom/prometheus.yml
Normal file
13
projects/demo/prom/prometheus.yml
Normal file
@ -0,0 +1,13 @@
|
||||
global:
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
scrape_interval: 20s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
# Scrape the Node Exporter
|
||||
- job_name: 'node'
|
||||
scrape_interval: 20s
|
||||
static_configs:
|
||||
- targets: ['10.128.0.200:9100', '10.128.0.201:9100', '10.128.0.202:9100', '10.128.0.203:9100', '10.128.0.204:9100']
|
@ -2,9 +2,9 @@ kernel:
|
||||
image: "linuxkit/kernel:4.9.x"
|
||||
cmdline: "console=ttyS0 console=tty0 page_poison=1"
|
||||
init:
|
||||
- linuxkit/init:42fe8cb1508b3afed39eb89821906e3cc7a70551
|
||||
- linuxkit/init:63eed9ca7a09d2ce4c0c5e7238ac005fa44f564b
|
||||
- linuxkit/runc:b0fb122e10dbb7e4e45115177a61a3f8d68c19a9
|
||||
- linuxkit/containerd:fe1b7f438a234cb6481c6538295115eac2a0596d
|
||||
- linuxkit/containerd:18eaf72f3f4f9a9f29ca1951f66df701f873060b
|
||||
services:
|
||||
- name: dhcpcd
|
||||
image: "linuxkit/dhcpcd:0d4012269cb142972fed8542fbdc3ff5a7b695cd"
|
||||
@ -16,9 +16,8 @@ services:
|
||||
- CAP_NET_BIND_SERVICE
|
||||
- CAP_NET_RAW
|
||||
net: host
|
||||
oomScoreAdj: -800
|
||||
- name: nginx
|
||||
image: "nginx:1.11.12-alpine"
|
||||
- name: redis
|
||||
image: "redis:3.0.7-alpine"
|
||||
capabilities:
|
||||
- CAP_NET_BIND_SERVICE
|
||||
- CAP_CHOWN
|
Loading…
Reference in New Issue
Block a user