Merge pull request #3228 from jbeda/dns-release

Create cluster/addons for things to put into a kubernetes cluster
This commit is contained in:
Zach Loafman 2015-01-05 14:26:04 -08:00
commit 7d507a4fa9
19 changed files with 96 additions and 56 deletions

View File

@ -6,13 +6,15 @@
"manifest": { "manifest": {
"version": "v1beta1", "version": "v1beta1",
"id": "heapster", "id": "heapster",
"containers": [{ "containers": [
{
"name": "heapster", "name": "heapster",
"image": "kubernetes/heapster", "image": "kubernetes/heapster"
}] }
]
} }
}, },
"labels": { "labels": {
"name": "heapster", "name": "heapster"
} }
} }

View File

@ -0,0 +1,71 @@
{
"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"
}
}

View File

@ -6,5 +6,7 @@
"containerPort": 8086, "containerPort": 8086,
"provider": "kubernetes-default", "provider": "kubernetes-default",
"component": "influxdb", "component": "influxdb",
"selector": { "name": "influxdb" } "selector": {
"name": "influxdb"
}
} }

View File

@ -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.
## 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).

View File

@ -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."

View File

@ -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

View File

@ -1,34 +0,0 @@
{
"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",
}
}

View File

@ -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"