실습
Introduction
kubectl run nginx --image=nginxkubectl get pod -l run=nginxkubectl exec nginx -- curl -s localhostcat <<EOF | kubectl apply -f - kind: ConfigMap apiVersion: v1 metadata: name: envoy data: envoy.yaml: | static_resources: listeners: - name: http-listener address: socket_address: address: 0.0.0.0 port_value: 80 EOFcat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: envoy labels: app: envoy spec: containers: - name: envoy image: envoyproxy/envoy:v1.22.2 volumeMounts: - name: envoy-conf mountPath: /etc/envoy volumes: - name: envoy-conf configMap: name: envoy EOFkubectl get pod -l app=envoykubectl logs envoycat <<EOF | kubectl apply -f - kind: ConfigMap apiVersion: v1 metadata: name: envoy data: envoy.yaml: | static_resources: listeners: - name: http-listener address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains: - filters: - name: envoy.filters.network.tcp_proxy typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy stat_prefix: ingress_tcp cluster: nginx EOFkubectl get pod envoy -o yaml | kubectl replace --force -f -kubectl get pod -l app=envoykubectl run curl --image=curlimages/curl -- sleep infinitykubectl exec curl \ -- curl -s $(kubectl get pod nginx -o=jsonpath="{.status.podIP}")kubectl logs nginxkubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}")kubectl logs envoycat <<EOF | kubectl apply -f - kind: ConfigMap apiVersion: v1 metadata: name: envoy data: envoy.yaml: | static_resources: listeners: - name: http-listener address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains: - filters: - name: envoy.filters.network.tcp_proxy typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy stat_prefix: ingress_tcp cluster: nginx access_log: - name: envoy.access_loggers.stdout typed_config: "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog EOFkubectl get pod envoy -o yaml | kubectl replace --force -f -kubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}")kubectl logs envoycat <<EOF | kubectl apply -f - kind: ConfigMap apiVersion: v1 metadata: name: envoy data: envoy.yaml: | static_resources: listeners: - name: http-listener address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains: - filters: - name: envoy.filters.network.tcp_proxy typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy stat_prefix: ingress_tcp access_log: - name: envoy.access_loggers.stdout typed_config: "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog cluster: nginx clusters: - name: nginx type: STATIC load_assignment: cluster_name: nginx endpoints: - lb_endpoints: - endpoint: address: socket_address: address: $(kubectl get pod nginx -o=jsonpath="{.status.podIP}") port_value: 80 EOFkubectl get pod envoy -o yaml | kubectl replace --force -f -kubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}")kubectl logs envoykubectl logs nginxkubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}")/statscat <<EOF | kubectl apply -f - kind: ConfigMap apiVersion: v1 metadata: name: envoy data: envoy.yaml: | admin: address: socket_address: address: 0.0.0.0 port_value: 15000 static_resources: listeners: - name: http-listener address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains: - filters: - name: envoy.filters.network.tcp_proxy typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy stat_prefix: ingress_tcp access_log: - name: envoy.access_loggers.stdout typed_config: "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog cluster: nginx clusters: - name: nginx type: STATIC load_assignment: cluster_name: nginx endpoints: - lb_endpoints: - endpoint: address: socket_address: address: $(kubectl get pod nginx -o=jsonpath="{.status.podIP}") port_value: 80 EOFkubectl get pod envoy -o yaml | kubectl replace --force -f -kubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}"):15000/statskubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}"):15000/stats/prometheuskubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}")kubectl exec curl \ -- curl -s $(kubectl get pod envoy -o=jsonpath="{.status.podIP}"):15000/stats/prometheus \ | grep -i ingress_tcpkubectl delete pod nginx envoy curl kubectl delete cm envoy
HTTP Connection Manager
Last updated