github.com/qsunny/k8s@v0.0.0-20220101153623-e6dca256d5bf/examples-master/staging/explorer/README.md (about)

     1  ### explorer
     2  
     3  Explorer is a little container for examining the runtime environment Kubernetes produces for your pods.
     4  
     5  The intended use is to substitute k8s.gcr.io/explorer for your intended container, and then visit it via the proxy.
     6  
     7  Currently, you can look at:
     8   * The environment variables to make sure Kubernetes is doing what you expect.
     9   * The filesystem to make sure the mounted volumes and files are also what you expect.
    10   * Perform DNS lookups, to see how DNS works.
    11  
    12  `pod.yaml` is supplied as an example. You can control the port it serves on with the -port flag.
    13  
    14  Example from command line (the DNS lookup looks better from a web browser):
    15  
    16  ```console
    17  $ kubectl create -f examples/explorer/pod.yaml
    18  $ kubectl proxy &
    19  Starting to serve on localhost:8001
    20  
    21  $ curl localhost:8001/api/v1/proxy/namespaces/default/pods/explorer:8080/vars/
    22  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    23  HOSTNAME=explorer
    24  KIBANA_LOGGING_PORT_5601_TCP_PORT=5601
    25  KUBERNETES_SERVICE_HOST=10.0.0.2
    26  MONITORING_GRAFANA_PORT_80_TCP_PROTO=tcp
    27  MONITORING_INFLUXDB_UI_PORT_80_TCP_PROTO=tcp
    28  KIBANA_LOGGING_SERVICE_PORT=5601
    29  MONITORING_HEAPSTER_PORT_80_TCP_PORT=80
    30  MONITORING_INFLUXDB_UI_PORT_80_TCP_PORT=80
    31  KIBANA_LOGGING_SERVICE_HOST=10.0.204.206
    32  KIBANA_LOGGING_PORT_5601_TCP=tcp://10.0.204.206:5601
    33  KUBERNETES_PORT=tcp://10.0.0.2:443
    34  MONITORING_INFLUXDB_PORT=tcp://10.0.2.30:80
    35  MONITORING_INFLUXDB_PORT_80_TCP_PROTO=tcp
    36  MONITORING_INFLUXDB_UI_PORT=tcp://10.0.36.78:80
    37  KUBE_DNS_PORT_53_UDP=udp://10.0.0.10:53
    38  MONITORING_INFLUXDB_SERVICE_HOST=10.0.2.30
    39  ELASTICSEARCH_LOGGING_PORT=tcp://10.0.48.200:9200
    40  ELASTICSEARCH_LOGGING_PORT_9200_TCP_PORT=9200
    41  KUBERNETES_PORT_443_TCP=tcp://10.0.0.2:443
    42  ELASTICSEARCH_LOGGING_PORT_9200_TCP_PROTO=tcp
    43  KIBANA_LOGGING_PORT_5601_TCP_ADDR=10.0.204.206
    44  KUBE_DNS_PORT_53_UDP_ADDR=10.0.0.10
    45  MONITORING_HEAPSTER_PORT_80_TCP_PROTO=tcp
    46  MONITORING_INFLUXDB_PORT_80_TCP_ADDR=10.0.2.30
    47  KIBANA_LOGGING_PORT=tcp://10.0.204.206:5601
    48  MONITORING_GRAFANA_SERVICE_PORT=80
    49  MONITORING_HEAPSTER_SERVICE_PORT=80
    50  MONITORING_HEAPSTER_PORT_80_TCP=tcp://10.0.150.238:80
    51  ELASTICSEARCH_LOGGING_PORT_9200_TCP=tcp://10.0.48.200:9200
    52  ELASTICSEARCH_LOGGING_PORT_9200_TCP_ADDR=10.0.48.200
    53  MONITORING_GRAFANA_PORT_80_TCP_PORT=80
    54  MONITORING_HEAPSTER_PORT=tcp://10.0.150.238:80
    55  MONITORING_INFLUXDB_PORT_80_TCP=tcp://10.0.2.30:80
    56  KUBE_DNS_SERVICE_PORT=53
    57  KUBE_DNS_PORT_53_UDP_PORT=53
    58  MONITORING_GRAFANA_PORT_80_TCP_ADDR=10.0.100.174
    59  MONITORING_INFLUXDB_UI_SERVICE_HOST=10.0.36.78
    60  KIBANA_LOGGING_PORT_5601_TCP_PROTO=tcp
    61  MONITORING_GRAFANA_PORT=tcp://10.0.100.174:80
    62  MONITORING_INFLUXDB_UI_PORT_80_TCP_ADDR=10.0.36.78
    63  KUBE_DNS_SERVICE_HOST=10.0.0.10
    64  KUBERNETES_PORT_443_TCP_PORT=443
    65  MONITORING_HEAPSTER_PORT_80_TCP_ADDR=10.0.150.238
    66  MONITORING_INFLUXDB_UI_SERVICE_PORT=80
    67  KUBE_DNS_PORT=udp://10.0.0.10:53
    68  ELASTICSEARCH_LOGGING_SERVICE_HOST=10.0.48.200
    69  KUBERNETES_SERVICE_PORT=443
    70  MONITORING_HEAPSTER_SERVICE_HOST=10.0.150.238
    71  MONITORING_INFLUXDB_SERVICE_PORT=80
    72  MONITORING_INFLUXDB_PORT_80_TCP_PORT=80
    73  KUBE_DNS_PORT_53_UDP_PROTO=udp
    74  MONITORING_GRAFANA_PORT_80_TCP=tcp://10.0.100.174:80
    75  ELASTICSEARCH_LOGGING_SERVICE_PORT=9200
    76  MONITORING_GRAFANA_SERVICE_HOST=10.0.100.174
    77  MONITORING_INFLUXDB_UI_PORT_80_TCP=tcp://10.0.36.78:80
    78  KUBERNETES_PORT_443_TCP_PROTO=tcp
    79  KUBERNETES_PORT_443_TCP_ADDR=10.0.0.2
    80  HOME=/
    81  
    82  $ curl localhost:8001/api/v1/proxy/namespaces/default/pods/explorer:8080/fs/
    83  mount/
    84  var/
    85  .dockerenv
    86  etc/
    87  dev/
    88  proc/
    89  .dockerinit
    90  sys/
    91  README.md
    92  explorer
    93  
    94  $ curl localhost:8001/api/v1/proxy/namespaces/default/pods/explorer:8080/dns?q=elasticsearch-logging
    95  <html><head></head><body>
    96  <form action="/api/v1/proxy/namespaces/default/pods/explorer:8080/dns">
    97  <input name="q" type="text" value="elasticsearch-logging"/>
    98  <button type="submit">Lookup</button>
    99  </form>
   100  <br/><br/><pre>LookupNS(elasticsearch-logging):
   101  Result: ([]*net.NS)<nil>
   102  Error: &lt;*&gt;lookup elasticsearch-logging: no such host
   103  
   104  LookupTXT(elasticsearch-logging):
   105  Result: ([]string)<nil>
   106  Error: &lt;*&gt;lookup elasticsearch-logging: no such host
   107  
   108  LookupSRV(&#34;&#34;, &#34;&#34;, elasticsearch-logging):
   109  cname: elasticsearch-logging.default.svc.cluster.local.
   110  Result: ([]*net.SRV)[&lt;*&gt;{Target:(string)elasticsearch-logging.default.svc.cluster.local. Port:(uint16)9200 Priority:(uint16)10 Weight:(uint16)100}]
   111  Error: <nil>
   112  
   113  LookupHost(elasticsearch-logging):
   114  Result: ([]string)[10.0.60.245]
   115  Error: <nil>
   116  
   117  LookupIP(elasticsearch-logging):
   118  Result: ([]net.IP)[10.0.60.245]
   119  Error: <nil>
   120  
   121  LookupMX(elasticsearch-logging):
   122  Result: ([]*net.MX)<nil>
   123  Error: &lt;*&gt;lookup elasticsearch-logging: no such host
   124  
   125  </nil></nil></nil></nil></nil></nil></pre>
   126  
   127  </body></html>
   128  ```
   129  
   130  
   131  <!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
   132  [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/examples/explorer/README.md?pixel)]()
   133  <!-- END MUNGE: GENERATED_ANALYTICS -->