diff --git a/examples/logging-demo/README.md b/examples/logging-demo/README.md index 3da7bf6931a..7352e9efd2a 100644 --- a/examples/logging-demo/README.md +++ b/examples/logging-demo/README.md @@ -17,20 +17,21 @@ describes a pod that just emits a log message once every 4 seconds: # sleep 4 # i=$[$i+1] # done - -apiVersion: v1beta1 +apiVersion: v1beta3 kind: Pod -id: synthetic-logger-0.25lps-pod -desiredState: - manifest: - version: v1beta1 - id: synth-logger-0.25lps - containers: - - name: synth-lgr - image: ubuntu:14.04 - command: ["bash", "-c", "i=\"0\"; while true; do echo -n \"`hostname`: $i: \"; date --rfc-3339 ns; sleep 4; i=$[$i+1]; done"] -labels: - name: synth-logging-source +metadata: + labels: + name: synth-logging-source + name: synthetic-logger-0.25lps-pod +spec: + containers: + - args: + - bash + - -c + - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep + 4; i=$[$i+1]; done' + image: ubuntu:14.04 + name: synth-lgr ``` The other YAML file [synthetic_10lps.yaml](synthetic_10lps.yaml) specifies a similar synthetic logger that emits 10 log messages every second. To run both synthetic loggers: @@ -53,104 +54,182 @@ You can report the running pods, replication controllers and services with anoth $ make get ../../../kubectl.sh get pods Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get pods -POD CONTAINER(S) IMAGE(S) HOST LABELS STATUS -7e1c7ce6-9764-11e4-898c-42010af03582 kibana-logging kubernetes/kibana kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 name=kibana-logging Running -synthetic-logger-0.25lps-pod synth-lgr ubuntu:14.04 kubernetes-minion-2.c.kubernetes-elk.internal/146.148.41.87 name=synth-logging-source Running -synthetic-logger-10lps-pod synth-lgr ubuntu:14.04 kubernetes-minion-1.c.kubernetes-elk.internal/146.148.42.44 name=synth-logging-source Running -influx-grafana influxdb kubernetes/heapster_influxdb kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 name=influxdb Running - grafana kubernetes/heapster_grafana - elasticsearch elasticsearch -heapster heapster kubernetes/heapster kubernetes-minion-2.c.kubernetes-elk.internal/146.148.41.87 name=heapster Running -67cfcb1f-9764-11e4-898c-42010af03582 etcd quay.io/coreos/etcd:latest kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 k8s-app=skydns Running - kube2sky kubernetes/kube2sky:1.0 - skydns kubernetes/skydns:2014-12-23-001 -6ba20338-9764-11e4-898c-42010af03582 elasticsearch-logging elasticsearch kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 name=elasticsearch-logging Running -../../../cluster/kubectl.sh get replicationControllers -Running: ../../../cluster/../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get replicationControllers -CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS -skydns etcd quay.io/coreos/etcd:latest k8s-app=skydns 1 - kube2sky kubernetes/kube2sky:1.0 - skydns kubernetes/skydns:2014-12-23-001 -elasticsearch-logging-controller elasticsearch-logging elasticsearch name=elasticsearch-logging 1 -kibana-logging-controller kibana-logging kubernetes/kibana name=kibana-logging 1 -../../.../kubectl.sh get services -Running: ../../../cluster/../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get services -NAME LABELS SELECTOR IP PORT -kubernetes-ro component=apiserver,provider=kubernetes 10.0.83.3 80 -kubernetes component=apiserver,provider=kubernetes 10.0.79.4 443 -influx-master name=influxdb 10.0.232.223 8085 -skydns k8s-app=skydns k8s-app=skydns 10.0.0.10 53 -elasticsearch-logging name=elasticsearch-logging 10.0.25.103 9200 -kibana-logging name=kibana-logging 10.0.208.114 5601 - +POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE +elasticsearch-logging-f0smz 10.244.2.3 kubernetes-minion-ilqx/104.197.8.214 kubernetes.io/cluster-service=true,name=elasticsearch-logging Running 5 hours + elasticsearch-logging gcr.io/google_containers/elasticsearch:1.0 Running 5 hours +etcd-server-kubernetes-master kubernetes-master/ Running 5 hours + etcd-container gcr.io/google_containers/etcd:2.0.9 Running 5 hours +fluentd-elasticsearch-kubernetes-minion-7s1y 10.244.0.2 kubernetes-minion-7s1y/23.236.54.97 Running 5 hours + fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours +fluentd-elasticsearch-kubernetes-minion-cfs6 10.244.1.2 kubernetes-minion-cfs6/104.154.61.231 Running 5 hours + fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours +fluentd-elasticsearch-kubernetes-minion-ilqx 10.244.2.2 kubernetes-minion-ilqx/104.197.8.214 Running 5 hours + fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours +fluentd-elasticsearch-kubernetes-minion-x8gx 10.244.3.2 kubernetes-minion-x8gx/104.154.47.83 Running 5 hours + fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours +kibana-logging-cwe0b 10.244.1.3 kubernetes-minion-cfs6/104.154.61.231 kubernetes.io/cluster-service=true,name=kibana-logging Running 5 hours + kibana-logging gcr.io/google_containers/kibana:1.2 Running 5 hours +kube-apiserver-kubernetes-master kubernetes-master/ Running 5 hours + kube-apiserver gcr.io/google_containers/kube-apiserver:f0c332fc2582927ec27d24965572d4b0 Running 5 hours +kube-controller-manager-kubernetes-master kubernetes-master/ Running 5 hours + kube-controller-manager gcr.io/google_containers/kube-controller-manager:6729154dfd4e2a19752bdf9ceff8464c Running 5 hours +kube-dns-swd4n 10.244.3.5 kubernetes-minion-x8gx/104.154.47.83 k8s-app=kube-dns,kubernetes.io/cluster-service=true,name=kube-dns Running 5 hours + kube2sky gcr.io/google_containers/kube2sky:1.2 Running 5 hours + etcd quay.io/coreos/etcd:v2.0.3 Running 5 hours + skydns gcr.io/google_containers/skydns:2015-03-11-001 Running 5 hours +kube-scheduler-kubernetes-master kubernetes-master/ Running 5 hours + kube-scheduler gcr.io/google_containers/kube-scheduler:ec9d2092f754211cc5ab3a5162c05fc1 Running 5 hours +monitoring-heapster-controller-zpjj1 10.244.3.3 kubernetes-minion-x8gx/104.154.47.83 kubernetes.io/cluster-service=true,name=heapster Running 5 hours + heapster gcr.io/google_containers/heapster:v0.10.0 Running 5 hours +monitoring-influx-grafana-controller-dqan4 10.244.3.4 kubernetes-minion-x8gx/104.154.47.83 kubernetes.io/cluster-service=true,name=influxGrafana Running 5 hours + grafana gcr.io/google_containers/heapster_grafana:v0.6 Running 5 hours + influxdb gcr.io/google_containers/heapster_influxdb:v0.3 Running 5 hours +synthetic-logger-0.25lps-pod 10.244.0.7 kubernetes-minion-7s1y/23.236.54.97 name=synth-logging-source Running 19 minutes + synth-lgr ubuntu:14.04 Running 19 minutes +synthetic-logger-10lps-pod 10.244.3.14 kubernetes-minion-x8gx/104.154.47.83 name=synth-logging-source Running 19 minutes + synth-lgr ubuntu:14.04 Running 19 minutes +../../_output/local/bin/linux/amd64/kubectl get replicationControllers +CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS +elasticsearch-logging elasticsearch-logging gcr.io/google_containers/elasticsearch:1.0 name=elasticsearch-logging 1 +kibana-logging kibana-logging gcr.io/google_containers/kibana:1.2 name=kibana-logging 1 +kube-dns etcd quay.io/coreos/etcd:v2.0.3 k8s-app=kube-dns 1 + kube2sky gcr.io/google_containers/kube2sky:1.2 + skydns gcr.io/google_containers/skydns:2015-03-11-001 +monitoring-heapster-controller heapster gcr.io/google_containers/heapster:v0.10.0 name=heapster 1 +monitoring-influx-grafana-controller influxdb gcr.io/google_containers/heapster_influxdb:v0.3 name=influxGrafana 1 + grafana gcr.io/google_containers/heapster_grafana:v0.6 +../../_output/local/bin/linux/amd64/kubectl get services +NAME LABELS SELECTOR IP(S) PORT(S) +elasticsearch-logging kubernetes.io/cluster-service=true,name=elasticsearch-logging name=elasticsearch-logging 10.0.251.221 9200/TCP +kibana-logging kubernetes.io/cluster-service=true,name=kibana-logging name=kibana-logging 10.0.188.118 5601/TCP +kube-dns k8s-app=kube-dns,kubernetes.io/cluster-service=true,name=kube-dns k8s-app=kube-dns 10.0.0.10 53/UDP +kubernetes component=apiserver,provider=kubernetes 10.0.0.2 443/TCP +kubernetes-ro component=apiserver,provider=kubernetes 10.0.0.1 80/TCP +monitoring-grafana kubernetes.io/cluster-service=true,name=grafana name=influxGrafana 10.0.254.202 80/TCP +monitoring-heapster kubernetes.io/cluster-service=true,name=heapster name=heapster 10.0.19.214 80/TCP +monitoring-influxdb name=influxGrafana name=influxGrafana 10.0.198.71 80/TCP +monitoring-influxdb-ui name=influxGrafana name=influxGrafana 10.0.109.66 80/TCP ``` + The `net` rule in the Makefile will report information about the Elasticsearch and Kibana services including the public IP addresses of each service. ``` $ make net ../../../kubectl.sh get services elasticsearch-logging -o json -current-context: "kubernetes-satnam_kubernetes" -Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get services elasticsearch-logging -o json +current-context: "lithe-cocoa-92103_kubernetes" +Running: ../../_output/local/bin/linux/amd64/kubectl get services elasticsearch-logging -o json { "kind": "Service", - "id": "elasticsearch-logging", - "uid": "e5bf0a51-b87f-11e4-bd62-42010af01267", - "creationTimestamp": "2015-02-19T21:40:18Z", - "selfLink": "/api/v1beta1/services/elasticsearch-logging?namespace=default", - "resourceVersion": 68, - "apiVersion": "v1beta1", - "namespace": "default", - "port": 9200, - "protocol": "TCP", - "labels": { - "name": "elasticsearch-logging" + "apiVersion": "v1beta3", + "metadata": { + "name": "elasticsearch-logging", + "namespace": "default", + "selfLink": "/api/v1beta3/namespaces/default/services/elasticsearch-logging", + "uid": "9dc7290f-f358-11e4-a58e-42010af09a93", + "resourceVersion": "28", + "creationTimestamp": "2015-05-05T18:57:45Z", + "labels": { + "kubernetes.io/cluster-service": "true", + "name": "elasticsearch-logging" + } }, - "selector": { - "name": "elasticsearch-logging" + "spec": { + "ports": [ + { + "name": "", + "protocol": "TCP", + "port": 9200, + "targetPort": "es-port" + } + ], + "selector": { + "name": "elasticsearch-logging" + }, + "portalIP": "10.0.251.221", + "sessionAffinity": "None" }, - "createExternalLoadBalancer": true, - "publicIPs": [ - "104.154.81.135" - ], - "containerPort": 9200, - "portalIP": "10.0.58.62", - "sessionAffinity": "None" + "status": {} } -../../../kubectl.sh get services kibana-logging -o json -current-context: "kubernetes-satnam_kubernetes" -Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get services kibana-logging -o json +current-context: "lithe-cocoa-92103_kubernetes" +Running: ../../_output/local/bin/linux/amd64/kubectl get services kibana-logging -o json { "kind": "Service", - "id": "kibana-logging", - "uid": "e5bd4617-b87f-11e4-bd62-42010af01267", - "creationTimestamp": "2015-02-19T21:40:18Z", - "selfLink": "/api/v1beta1/services/kibana-logging?namespace=default", - "resourceVersion": 67, - "apiVersion": "v1beta1", - "namespace": "default", - "port": 5601, - "protocol": "TCP", - "labels": { - "name": "kibana-logging" + "apiVersion": "v1beta3", + "metadata": { + "name": "kibana-logging", + "namespace": "default", + "selfLink": "/api/v1beta3/namespaces/default/services/kibana-logging", + "uid": "9dc6f856-f358-11e4-a58e-42010af09a93", + "resourceVersion": "31", + "creationTimestamp": "2015-05-05T18:57:45Z", + "labels": { + "kubernetes.io/cluster-service": "true", + "name": "kibana-logging" + } }, - "selector": { - "name": "kibana-logging" + "spec": { + "ports": [ + { + "name": "", + "protocol": "TCP", + "port": 5601, + "targetPort": "kibana-port" + } + ], + "selector": { + "name": "kibana-logging" + }, + "portalIP": "10.0.188.118", + "sessionAffinity": "None" }, - "createExternalLoadBalancer": true, - "publicIPs": [ - "104.154.91.224" - ], - "containerPort": 80, - "portalIP": "10.0.124.153", - "sessionAffinity": "None" + "status": {} } ``` -For this example the Elasticsearch service is running at `http://104.154.81.135:9200`. +To find the URLs to access the Elasticsearch and Kibana viewer, +``` +$ kubectl cluster-info +Kubernetes master is running at https://130.211.122.180 +elasticsearch-logging is running at https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging +kibana-logging is running at https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/kibana-logging +kube-dns is running at https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/kube-dns +grafana is running at https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/monitoring-grafana +heapster is running at https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/monitoring-heapster +``` + +To find the user name and password to access the URLs, +``` +$ kubectl config view +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: REDACTED + server: https://130.211.122.180 + name: lithe-cocoa-92103_kubernetes +contexts: +- context: + cluster: lithe-cocoa-92103_kubernetes + user: lithe-cocoa-92103_kubernetes + name: lithe-cocoa-92103_kubernetes +current-context: lithe-cocoa-92103_kubernetes +kind: Config +preferences: {} +users: +- name: lithe-cocoa-92103_kubernetes + user: + client-certificate-data: REDACTED + client-key-data: REDACTED + token: 65rZW78y8HxmXXtSXuUw9DbP4FLjHi4b +- name: lithe-cocoa-92103_kubernetes-basic-auth + user: + password: h5M0FtVXXflBSdI7 + username: admin +``` + +Access the Elasticsearch service at URL `https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/elasticsearch-logging`, use the user name 'admin' and password 'h5M0FtVXXflBSdI7', ``` -$ curl http://104.154.81.135:9200 { "status" : 200, - "name" : "Wombat", - "cluster_name" : "elasticsearch", + "name" : "Major Mapleleaf", + "cluster_name" : "kubernetes_logging", "version" : { "number" : "1.4.4", "build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512", @@ -161,4 +240,4 @@ $ curl http://104.154.81.135:9200 "tagline" : "You Know, for Search" } ``` -Visiting the URL `http://104.154.91.224:5601` should show the Kibana viewer for the logging information stored in the Elasticsearch service running at `http://104.154.81.135:9200`. +Visiting the URL `https://130.211.122.180/api/v1beta3/proxy/namespaces/default/services/kibana-logging` should show the Kibana viewer for the logging information stored in the Elasticsearch service. diff --git a/examples/logging-demo/synthetic_0_25lps.yaml b/examples/logging-demo/synthetic_0_25lps.yaml index bbd935141b5..5ff01e52874 100644 --- a/examples/logging-demo/synthetic_0_25lps.yaml +++ b/examples/logging-demo/synthetic_0_25lps.yaml @@ -12,18 +12,18 @@ # sleep 4 # i=$[$i+1] # done - -apiVersion: v1beta1 +apiVersion: v1beta3 kind: Pod -id: synthetic-logger-0.25lps-pod -desiredState: - manifest: - version: v1beta1 - id: synth-logger-0.25lps - containers: - - name: synth-lgr - image: ubuntu:14.04 - command: ["bash", "-c", "i=\"0\"; while true; do echo -n \"`hostname`: $i: \"; date --rfc-3339 ns; sleep 4; i=$[$i+1]; done"] -labels: - name: synth-logging-source - \ No newline at end of file +metadata: + labels: + name: synth-logging-source + name: synthetic-logger-0.25lps-pod +spec: + containers: + - args: + - bash + - -c + - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep + 4; i=$[$i+1]; done' + image: ubuntu:14.04 + name: synth-lgr diff --git a/examples/logging-demo/synthetic_10lps.yaml b/examples/logging-demo/synthetic_10lps.yaml index 2d5a782c46e..35f305d260f 100644 --- a/examples/logging-demo/synthetic_10lps.yaml +++ b/examples/logging-demo/synthetic_10lps.yaml @@ -12,18 +12,19 @@ # sleep 4 # i=$[$i+1] # done - -apiVersion: v1beta1 +apiVersion: v1beta3 kind: Pod -id: synthetic-logger-10lps-pod -desiredState: - manifest: - version: v1beta1 - id: synth-logger-10lps - containers: - - name: synth-lgr - image: ubuntu:14.04 - command: ["bash", "-c", "i=\"0\"; while true; do echo -n \"`hostname`: $i: \"; date --rfc-3339 ns; sleep 0.1; i=$[$i+1]; done"] -labels: - name: synth-logging-source - +metadata: + creationTimestamp: null + labels: + name: synth-logging-source + name: synthetic-logger-10lps-pod +spec: + containers: + - args: + - bash + - -c + - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep + 0.1; i=$[$i+1]; done' + image: ubuntu:14.04 + name: synth-lgr