Commit 7d507a4f authored by Zach Loafman's avatar Zach Loafman

Merge pull request #3228 from jbeda/dns-release

Create cluster/addons for things to put into a kubernetes cluster
parents 31f9e18f 9aa48b76
...@@ -6,13 +6,15 @@ ...@@ -6,13 +6,15 @@
"manifest": { "manifest": {
"version": "v1beta1", "version": "v1beta1",
"id": "heapster", "id": "heapster",
"containers": [{ "containers": [
"name": "heapster", {
"image": "kubernetes/heapster", "name": "heapster",
}] "image": "kubernetes/heapster"
}
]
} }
}, },
"labels": { "labels": {
"name": "heapster", "name": "heapster"
} }
} }
{
"id": "influx-grafana",
"kind": "Pod",
"apiVersion": "v1beta1",
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "influx-grafana",
"containers": [
{
"name": "influxdb",
"image": "kubernetes/heapster_influxdb",
"ports": [
{
"containerPort": 8083,
"hostPort": 8083
},
{
"containerPort": 8086,
"hostPort": 8086
},
{
"containerPort": 8090,
"hostPort": 8090
},
{
"containerPort": 8099,
"hostPort": 8099
}
]
},
{
"name": "grafana",
"image": "kubernetes/heapster_grafana",
"ports": [
{
"containerPort": 80,
"hostPort": 80
}
],
"env": [
{
"name": "HTTP_USER",
"value": "{KUBE_USER}"
},
{
"name": "HTTP_PASS",
"value": "{KUBE_PASSWORD}"
}
]
},
{
"name": "elasticsearch",
"image": "dockerfile/elasticsearch",
"ports": [
{
"containerPort": 9200,
"hostPort": 9200
},
{
"containerPort": 9300
}
]
}
]
}
},
"labels": {
"name": "influxdb"
}
}
...@@ -6,5 +6,7 @@ ...@@ -6,5 +6,7 @@
"containerPort": 8086, "containerPort": 8086,
"provider": "kubernetes-default", "provider": "kubernetes-default",
"component": "influxdb", "component": "influxdb",
"selector": { "name": "influxdb" } "selector": {
"name": "influxdb"
}
} }
...@@ -29,11 +29,11 @@ DNS_REPLICAS=2 ...@@ -29,11 +29,11 @@ DNS_REPLICAS=2
sed -e "s/{DNS_DOMAIN}/$DNS_DOMAIN/g" \ sed -e "s/{DNS_DOMAIN}/$DNS_DOMAIN/g" \
-e "s/{DNS_REPLICAS}/$DNS_REPLICAS/g" \ -e "s/{DNS_REPLICAS}/$DNS_REPLICAS/g" \
./contrib/dns/skydns-rc.yaml.in \ ./cluster/addons/dns/skydns-rc.yaml.in \
| ./cluster/kubectl.sh create -f - | ./cluster/kubectl.sh create -f -
sed -e "s/{DNS_SERVER_IP}/$DNS_SERVER_IP/g" \ sed -e "s/{DNS_SERVER_IP}/$DNS_SERVER_IP/g" \
./contrib/dns/skydns-svc.yaml.in \ ./cluster/addons/dns/skydns-svc.yaml.in \
| ./cluster/kubectl.sh create -f - | ./cluster/kubectl.sh create -f -
``` ```
...@@ -48,6 +48,6 @@ that to etcd for SkyDNS to find. ...@@ -48,6 +48,6 @@ that to etcd for SkyDNS to find.
## Known issues ## Known issues
DNS resolution does not work from nodes directly, but it DOES work for DNS resolution does not work from nodes directly, but it DOES work for
containers. As best I can figure out, this is some oddity around DNAT and containers. As best I (thockin) can figure out, this is some oddity around DNAT and
localhost in the kernel. I think I have a workaround, but it's not quite baked localhost in the kernel. I think I have a workaround, but it's not quite baked
as of the this writing (11/6/2014). as of the this writing (11/6/2014).
...@@ -746,15 +746,14 @@ function setup-monitoring { ...@@ -746,15 +746,14 @@ function setup-monitoring {
get-password get-password
ensure-temp-dir ensure-temp-dir
cp "${KUBE_ROOT}/examples/monitoring/influx-grafana-pod.json" "${KUBE_TEMP}/influx-grafana-pod.0.json" sed -e "s/{KUBE_USER}/$KUBE_USER/g" \
sed "s/HTTP_USER, \"value\": \"[^\"]*\"/HTTP_USER, \"value\": \"$KUBE_USER\"/g" \ -e "s/{KUBE_PASSWORD}/$KUBE_PASSWORD/g" \
"${KUBE_TEMP}/influx-grafana-pod.0.json" > "${KUBE_TEMP}/influx-grafana-pod.1.json" "${KUBE_ROOT}/cluster/addons/cluster-monitoring/influx-grafana-pod.json" \
sed "s/HTTP_PASS, \"value\": \"[^\"]*\"/HTTP_PASS, \"value\": \"$KUBE_PASSWORD\"/g" \ > "${KUBE_TEMP}/influx-grafana-pod.json"
"${KUBE_TEMP}/influx-grafana-pod.1.json" > "${KUBE_TEMP}/influx-grafana-pod.2.json"
local kubectl="${KUBE_ROOT}/cluster/kubectl.sh" local kubectl="${KUBE_ROOT}/cluster/kubectl.sh"
if "${kubectl}" create -f "${KUBE_TEMP}/influx-grafana-pod.2.json" &> /dev/null \ if "${kubectl}" create -f "${KUBE_TEMP}/influx-grafana-pod.json" &> /dev/null \
&& "${kubectl}" create -f "${KUBE_ROOT}/examples/monitoring/influx-grafana-service.json" &> /dev/null \ && "${kubectl}" create -f "${KUBE_ROOT}/cluster/addons/cluster-monitoring/influx-grafana-service.json" &> /dev/null \
&& "${kubectl}" create -f "${KUBE_ROOT}/examples/monitoring/heapster-pod.json" &> /dev/null; then && "${kubectl}" create -f "${KUBE_ROOT}/cluster/addons/cluster-monitoring/heapster-pod.json" &> /dev/null; then
local dashboard_url="http://$(${kubectl} get -o json pod influx-grafana | grep hostIP | awk '{print $2}' | sed 's/[,|\"]//g')" local dashboard_url="http://$(${kubectl} get -o json pod influx-grafana | grep hostIP | awk '{print $2}' | sed 's/[,|\"]//g')"
echo echo
echo "Grafana dashboard will be available at $dashboard_url. Wait for the monitoring dashboard to be online." echo "Grafana dashboard will be available at $dashboard_url. Wait for the monitoring dashboard to be online."
......
...@@ -43,14 +43,14 @@ echo "... calling setup-monitoring" >&2 ...@@ -43,14 +43,14 @@ echo "... calling setup-monitoring" >&2
setup-monitoring setup-monitoring
if [[ "${ENABLE_CLUSTER_DNS}" == "true" ]]; then if [[ "${ENABLE_CLUSTER_DNS}" == "true" ]]; then
echo "Installing cluster DNS" echo ".. setting up cluster DNS"
sed -e "s/{DNS_DOMAIN}/$DNS_DOMAIN/g" \ sed -e "s/{DNS_DOMAIN}/$DNS_DOMAIN/g" \
-e "s/{DNS_REPLICAS}/$DNS_REPLICAS/g" \ -e "s/{DNS_REPLICAS}/$DNS_REPLICAS/g" \
"${KUBE_ROOT}/contrib/dns/skydns-rc.yaml.in" \ "${KUBE_ROOT}/cluster/addons/dns/skydns-rc.yaml.in" \
| "${KUBE_ROOT}/cluster/kubectl.sh" create -f - | "${KUBE_ROOT}/cluster/kubectl.sh" create -f -
sed -e "s/{DNS_SERVER_IP}/$DNS_SERVER_IP/g" \ sed -e "s/{DNS_SERVER_IP}/$DNS_SERVER_IP/g" \
"${KUBE_ROOT}/contrib/dns/skydns-svc.yaml.in" \ "${KUBE_ROOT}/cluster/addons/dns/skydns-svc.yaml.in" \
| "${KUBE_ROOT}/cluster/kubectl.sh" create -f - | "${KUBE_ROOT}/cluster/kubectl.sh" create -f -
fi fi
......
{
"id": "influx-grafana",
"kind": "Pod",
"apiVersion": "v1beta1",
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "influx-grafana",
"containers": [{
"name": "influxdb",
"image": "kubernetes/heapster_influxdb",
"ports": [
{"containerPort": 8083, "hostPort": 8083},
{"containerPort": 8086, "hostPort": 8086},
{"containerPort": 8090, "hostPort": 8090},
{"containerPort": 8099, "hostPort": 8099}]
}, {
"name": "grafana",
"image": "kubernetes/heapster_grafana",
"ports": [{"containerPort": 80, "hostPort": 80}],
"env": [{"name": HTTP_USER, "value": "admin"},
{"name": HTTP_PASS, "value": "admin"}],
}, {
"name": "elasticsearch",
"image": "dockerfile/elasticsearch",
"ports": [{"containerPort": 9200, "hostPort": 9200},
{"containerPort": 9300}],
}]
},
},
"labels": {
"name": "influxdb",
}
}
...@@ -26,7 +26,7 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. ...@@ -26,7 +26,7 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
source "${KUBE_ROOT}/cluster/kube-env.sh" source "${KUBE_ROOT}/cluster/kube-env.sh"
source "${KUBE_ROOT}/cluster/$KUBERNETES_PROVIDER/util.sh" source "${KUBE_ROOT}/cluster/$KUBERNETES_PROVIDER/util.sh"
MONITORING="${KUBE_ROOT}/examples/monitoring" MONITORING="${KUBE_ROOT}/cluster/addons/cluster-monitoring"
KUBECTL="${KUBE_ROOT}/cluster/kubectl.sh" KUBECTL="${KUBE_ROOT}/cluster/kubectl.sh"
MONITORING_FIREWALL_RULE="monitoring-test" MONITORING_FIREWALL_RULE="monitoring-test"
...@@ -54,7 +54,7 @@ function cleanup { ...@@ -54,7 +54,7 @@ function cleanup {
"${KUBECTL}" delete -f "${MONITORING}/influx-grafana-pod.json" || true "${KUBECTL}" delete -f "${MONITORING}/influx-grafana-pod.json" || true
"${KUBECTL}" delete -f "${MONITORING}/influx-grafana-service.json" || true "${KUBECTL}" delete -f "${MONITORING}/influx-grafana-service.json" || true
"${KUBECTL}" delete -f "${MONITORING}/heapster-pod.json" || true "${KUBECTL}" delete -f "${MONITORING}/heapster-pod.json" || true
# This only has work to do on gce and gke # This only has work to do on gce and gke
if [[ "${KUBERNETES_PROVIDER}" == "gce" ]] || [[ "${KUBERNETES_PROVIDER}" == "gke" ]]; then if [[ "${KUBERNETES_PROVIDER}" == "gce" ]] || [[ "${KUBERNETES_PROVIDER}" == "gke" ]]; then
detect-project detect-project
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment