update logging-demo to use API v1beta3; modify the way to access Elasticsearch and Kibana services

COMMIT_BLOCKED_ON_GENDOCS
This commit is contained in:
Chao Xu 2015-05-05 17:58:54 -07:00
parent 221553b147
commit eee11dee1b
3 changed files with 201 additions and 121 deletions

View File

@ -17,20 +17,21 @@ describes a pod that just emits a log message once every 4 seconds:
# sleep 4 # sleep 4
# i=$[$i+1] # i=$[$i+1]
# done # done
apiVersion: v1beta3
apiVersion: v1beta1
kind: Pod kind: Pod
id: synthetic-logger-0.25lps-pod metadata:
desiredState: labels:
manifest: name: synth-logging-source
version: v1beta1 name: synthetic-logger-0.25lps-pod
id: synth-logger-0.25lps spec:
containers: containers:
- name: synth-lgr - args:
image: ubuntu:14.04 - bash
command: ["bash", "-c", "i=\"0\"; while true; do echo -n \"`hostname`: $i: \"; date --rfc-3339 ns; sleep 4; i=$[$i+1]; done"] - -c
labels: - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep
name: synth-logging-source 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: 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 $ make get
../../../kubectl.sh get pods ../../../kubectl.sh get pods
Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get pods Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get pods
POD CONTAINER(S) IMAGE(S) HOST LABELS STATUS POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE
7e1c7ce6-9764-11e4-898c-42010af03582 kibana-logging kubernetes/kibana kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 name=kibana-logging Running 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
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 elasticsearch-logging gcr.io/google_containers/elasticsearch:1.0 Running 5 hours
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 etcd-server-kubernetes-master kubernetes-master/ <none> Running 5 hours
influx-grafana influxdb kubernetes/heapster_influxdb kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 name=influxdb Running etcd-container gcr.io/google_containers/etcd:2.0.9 Running 5 hours
grafana kubernetes/heapster_grafana fluentd-elasticsearch-kubernetes-minion-7s1y 10.244.0.2 kubernetes-minion-7s1y/23.236.54.97 <none> Running 5 hours
elasticsearch elasticsearch fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours
heapster heapster kubernetes/heapster kubernetes-minion-2.c.kubernetes-elk.internal/146.148.41.87 name=heapster Running fluentd-elasticsearch-kubernetes-minion-cfs6 10.244.1.2 kubernetes-minion-cfs6/104.154.61.231 <none> Running 5 hours
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 fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours
kube2sky kubernetes/kube2sky:1.0 fluentd-elasticsearch-kubernetes-minion-ilqx 10.244.2.2 kubernetes-minion-ilqx/104.197.8.214 <none> Running 5 hours
skydns kubernetes/skydns:2014-12-23-001 fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours
6ba20338-9764-11e4-898c-42010af03582 elasticsearch-logging elasticsearch kubernetes-minion-3.c.kubernetes-elk.internal/130.211.129.169 name=elasticsearch-logging Running fluentd-elasticsearch-kubernetes-minion-x8gx 10.244.3.2 kubernetes-minion-x8gx/104.154.47.83 <none> Running 5 hours
../../../cluster/kubectl.sh get replicationControllers fluentd-elasticsearch gcr.io/google_containers/fluentd-elasticsearch:1.5 Running 5 hours
Running: ../../../cluster/../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get replicationControllers 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
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS kibana-logging gcr.io/google_containers/kibana:1.2 Running 5 hours
skydns etcd quay.io/coreos/etcd:latest k8s-app=skydns 1 kube-apiserver-kubernetes-master kubernetes-master/ <none> Running 5 hours
kube2sky kubernetes/kube2sky:1.0 kube-apiserver gcr.io/google_containers/kube-apiserver:f0c332fc2582927ec27d24965572d4b0 Running 5 hours
skydns kubernetes/skydns:2014-12-23-001 kube-controller-manager-kubernetes-master kubernetes-master/ <none> Running 5 hours
elasticsearch-logging-controller elasticsearch-logging elasticsearch name=elasticsearch-logging 1 kube-controller-manager gcr.io/google_containers/kube-controller-manager:6729154dfd4e2a19752bdf9ceff8464c Running 5 hours
kibana-logging-controller kibana-logging kubernetes/kibana name=kibana-logging 1 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
../../.../kubectl.sh get services kube2sky gcr.io/google_containers/kube2sky:1.2 Running 5 hours
Running: ../../../cluster/../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get services etcd quay.io/coreos/etcd:v2.0.3 Running 5 hours
NAME LABELS SELECTOR IP PORT skydns gcr.io/google_containers/skydns:2015-03-11-001 Running 5 hours
kubernetes-ro component=apiserver,provider=kubernetes <none> 10.0.83.3 80 kube-scheduler-kubernetes-master kubernetes-master/ <none> Running 5 hours
kubernetes component=apiserver,provider=kubernetes <none> 10.0.79.4 443 kube-scheduler gcr.io/google_containers/kube-scheduler:ec9d2092f754211cc5ab3a5162c05fc1 Running 5 hours
influx-master <none> name=influxdb 10.0.232.223 8085 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
skydns k8s-app=skydns k8s-app=skydns 10.0.0.10 53 heapster gcr.io/google_containers/heapster:v0.10.0 Running 5 hours
elasticsearch-logging <none> name=elasticsearch-logging 10.0.25.103 9200 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
kibana-logging <none> name=kibana-logging 10.0.208.114 5601 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 <none> 10.0.0.2 443/TCP
kubernetes-ro component=apiserver,provider=kubernetes <none> 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. 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 $ make net
../../../kubectl.sh get services elasticsearch-logging -o json ../../../kubectl.sh get services elasticsearch-logging -o json
current-context: "kubernetes-satnam_kubernetes" current-context: "lithe-cocoa-92103_kubernetes"
Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get services elasticsearch-logging -o json Running: ../../_output/local/bin/linux/amd64/kubectl get services elasticsearch-logging -o json
{ {
"kind": "Service", "kind": "Service",
"id": "elasticsearch-logging", "apiVersion": "v1beta3",
"uid": "e5bf0a51-b87f-11e4-bd62-42010af01267", "metadata": {
"creationTimestamp": "2015-02-19T21:40:18Z", "name": "elasticsearch-logging",
"selfLink": "/api/v1beta1/services/elasticsearch-logging?namespace=default", "namespace": "default",
"resourceVersion": 68, "selfLink": "/api/v1beta3/namespaces/default/services/elasticsearch-logging",
"apiVersion": "v1beta1", "uid": "9dc7290f-f358-11e4-a58e-42010af09a93",
"namespace": "default", "resourceVersion": "28",
"port": 9200, "creationTimestamp": "2015-05-05T18:57:45Z",
"protocol": "TCP", "labels": {
"labels": { "kubernetes.io/cluster-service": "true",
"name": "elasticsearch-logging" "name": "elasticsearch-logging"
}
}, },
"selector": { "spec": {
"name": "elasticsearch-logging" "ports": [
{
"name": "",
"protocol": "TCP",
"port": 9200,
"targetPort": "es-port"
}
],
"selector": {
"name": "elasticsearch-logging"
},
"portalIP": "10.0.251.221",
"sessionAffinity": "None"
}, },
"createExternalLoadBalancer": true, "status": {}
"publicIPs": [
"104.154.81.135"
],
"containerPort": 9200,
"portalIP": "10.0.58.62",
"sessionAffinity": "None"
} }
../../../kubectl.sh get services kibana-logging -o json current-context: "lithe-cocoa-92103_kubernetes"
current-context: "kubernetes-satnam_kubernetes" Running: ../../_output/local/bin/linux/amd64/kubectl get services kibana-logging -o json
Running: ../../../../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get services kibana-logging -o json
{ {
"kind": "Service", "kind": "Service",
"id": "kibana-logging", "apiVersion": "v1beta3",
"uid": "e5bd4617-b87f-11e4-bd62-42010af01267", "metadata": {
"creationTimestamp": "2015-02-19T21:40:18Z", "name": "kibana-logging",
"selfLink": "/api/v1beta1/services/kibana-logging?namespace=default", "namespace": "default",
"resourceVersion": 67, "selfLink": "/api/v1beta3/namespaces/default/services/kibana-logging",
"apiVersion": "v1beta1", "uid": "9dc6f856-f358-11e4-a58e-42010af09a93",
"namespace": "default", "resourceVersion": "31",
"port": 5601, "creationTimestamp": "2015-05-05T18:57:45Z",
"protocol": "TCP", "labels": {
"labels": { "kubernetes.io/cluster-service": "true",
"name": "kibana-logging" "name": "kibana-logging"
}
}, },
"selector": { "spec": {
"name": "kibana-logging" "ports": [
{
"name": "",
"protocol": "TCP",
"port": 5601,
"targetPort": "kibana-port"
}
],
"selector": {
"name": "kibana-logging"
},
"portalIP": "10.0.188.118",
"sessionAffinity": "None"
}, },
"createExternalLoadBalancer": true, "status": {}
"publicIPs": [
"104.154.91.224"
],
"containerPort": 80,
"portalIP": "10.0.124.153",
"sessionAffinity": "None"
} }
``` ```
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, "status" : 200,
"name" : "Wombat", "name" : "Major Mapleleaf",
"cluster_name" : "elasticsearch", "cluster_name" : "kubernetes_logging",
"version" : { "version" : {
"number" : "1.4.4", "number" : "1.4.4",
"build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512", "build_hash" : "c88f77ffc81301dfa9dfd81ca2232f09588bd512",
@ -161,4 +240,4 @@ $ curl http://104.154.81.135:9200
"tagline" : "You Know, for Search" "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.

View File

@ -12,18 +12,18 @@
# sleep 4 # sleep 4
# i=$[$i+1] # i=$[$i+1]
# done # done
apiVersion: v1beta3
apiVersion: v1beta1
kind: Pod kind: Pod
id: synthetic-logger-0.25lps-pod metadata:
desiredState: labels:
manifest: name: synth-logging-source
version: v1beta1 name: synthetic-logger-0.25lps-pod
id: synth-logger-0.25lps spec:
containers: containers:
- name: synth-lgr - args:
image: ubuntu:14.04 - bash
command: ["bash", "-c", "i=\"0\"; while true; do echo -n \"`hostname`: $i: \"; date --rfc-3339 ns; sleep 4; i=$[$i+1]; done"] - -c
labels: - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep
name: synth-logging-source 4; i=$[$i+1]; done'
image: ubuntu:14.04
name: synth-lgr

View File

@ -12,18 +12,19 @@
# sleep 4 # sleep 4
# i=$[$i+1] # i=$[$i+1]
# done # done
apiVersion: v1beta3
apiVersion: v1beta1
kind: Pod kind: Pod
id: synthetic-logger-10lps-pod metadata:
desiredState: creationTimestamp: null
manifest: labels:
version: v1beta1 name: synth-logging-source
id: synth-logger-10lps name: synthetic-logger-10lps-pod
containers: spec:
- name: synth-lgr containers:
image: ubuntu:14.04 - args:
command: ["bash", "-c", "i=\"0\"; while true; do echo -n \"`hostname`: $i: \"; date --rfc-3339 ns; sleep 0.1; i=$[$i+1]; done"] - bash
labels: - -c
name: synth-logging-source - '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