diff --git a/slides/k8s/aggregation-layer.md b/slides/k8s/aggregation-layer.md index 5efd7b1a..82df51c6 100644 --- a/slides/k8s/aggregation-layer.md +++ b/slides/k8s/aggregation-layer.md @@ -58,27 +58,24 @@ *probably aggregation layer* - --- ## How are resources organized? - Let's have a look at the Kubernetes API hierarchical structure -- Useful: `.metadata.selfLink` contains the URI of a resource +- We'll ask `kubectl` to show us the exacts requests that it's making .exercise[ -- Check the `apiVersion` and URI of a "core" resource, e.g. a Node: +- Check the URI for a cluster-scope, "core" resource, e.g. a Node: ```bash - kubectl get nodes -o json | jq .items[0].apiVersion - kubectl get nodes -o json | jq .items[0].metadata.selfLink + kubectl -v6 get node node1 ``` -- Get the `apiVersion` and URI for a "non-core" resource, e.g. a ClusterRole: +- Check the URI for a cluster-scope, "non-core" resource, e.g. a ClusterRole: ```bash - kubectl get clusterrole view -o json | jq .apiVersion - kubectl get clusterrole view -o json | jq .metadata.selfLink + kubectl -v6 get clusterrole view ``` ] @@ -123,6 +120,17 @@ class: extra-details ## Namespaced resources +- What about namespaced resources? + +.exercise[ + +- Check the URI for a namespaced, "core" resource, e.g. a Service: + ```bash + kubectl -v6 get service kubernetes --namespace default + ``` + +] + - Here are what namespaced resources URIs look like: ``` @@ -168,7 +176,7 @@ class: extra-details kubectl get pods --namespace=kube-system --selector=k8s-app=kube-proxy PODNAME=$( kubectl get pods --namespace=kube-system --selector=k8s-app=kube-proxy \ - -o json | jq .items[0].metadata.name) + -o json | jq -r .items[0].metadata.name) ``` - Execute a command in a pod, showing the API requests: diff --git a/slides/k8s/hpa-v2.md b/slides/k8s/hpa-v2.md index 32155a17..35dec98d 100644 --- a/slides/k8s/hpa-v2.md +++ b/slides/k8s/hpa-v2.md @@ -72,7 +72,7 @@ - Deploy DockerCoins, and scale up the `worker` Deployment: ```bash - kubectl apply -f ~/container.training/k8/dockercoins.yaml + kubectl apply -f ~/container.training/k8s/dockercoins.yaml kubectl scale deployment worker --replicas=10 ``` @@ -118,7 +118,7 @@ - Deploy `httplat`: ```bash - kubectl create deployment httplat -- httplat http://rng/ + kubectl create deployment httplat --image=jpetazzo/httplat -- httplat http://rng/ ``` - Expose it: @@ -512,20 +512,20 @@ no custom metrics API (custom.metrics.k8s.io) registered Here is the rule that we need to add to the configuration: ```yaml -- seriesQuery: | - httplat_latency_seconds_sum{kubernetes_namespace!="",kubernetes_name!=""} - resources: - overrides: - kubernetes_namespace: - resource: namespace - kubernetes_name: - resource: service - name: - matches: "httplat_latency_seconds_sum" - as: "httplat_latency_seconds" - metricsQuery: | - rate(httplat_latency_seconds_sum{<<.LabelMatchers>>}[2m]) - /rate(httplat_latency_seconds_count{<<.LabelMatchers>>}[2m]) + - seriesQuery: | + httplat_latency_seconds_sum{kubernetes_namespace!="",kubernetes_name!=""} + resources: + overrides: + kubernetes_namespace: + resource: namespace + kubernetes_name: + resource: service + name: + matches: "httplat_latency_seconds_sum" + as: "httplat_latency_seconds" + metricsQuery: | + rate(httplat_latency_seconds_sum{<<.LabelMatchers>>}[2m]) + /rate(httplat_latency_seconds_count{<<.LabelMatchers>>}[2m]) ``` (I built it following the [walkthrough](https://github.com/DirectXMan12/k8s-prometheus-adapter/blob/master/docs/config-walkthrough.md @@ -636,7 +636,7 @@ kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 Check that our `httplat` metrics are available: ```bash kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1\ -/namespaces/coins/services/httplat/httplat_latency_seconds +/namespaces/customscaling/services/httplat/httplat_latency_seconds ``` Also check the logs of the `prometheus-adapter` and the `kube-controller-manager`.