CKA Curriculum v1.14.1 読む

[CKA](https://www.cncf.io/certification/cka/) の勉強のために [カリキュラム](https://github.com/cncf/curriculum) を確認する。ついでに該当しそうな doc を記録する。

# Scheduling (5%)
- Use label selectors to schedule Pods.
  - [Labels and Selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)
      - [Jobs - Run to Completion](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/)
      - [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
      - [ReplicaSet](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/)
      - [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/)
- Understand the role of DaemonSets.
  - [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/)
- Understand how resource limits can affect Pod scheduling.
  - [Managing Compute Resources for Containers](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
    - [Configure Default Memory Requests and Limits for a Namespace](https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/), etc.
- Understand how to run multiple schedulers and how to configure Pods to use them.
  - [Configure Multiple Schedulers](https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/)
- Manually schedule a pod without a scheduler.
  - :question: 
  - [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/)
  - [Create static Pods](https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/) 
  - [Taints and Tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)
- Display scheduler events.
  - :question: 
  - [Application Introspection and Debugging](https://kubernetes.io/docs/tasks/debug-application-cluster/)
- Know how to configure the Kubernetes scheduler.
  - :question:
  - [Kubernetes Scheduler](https://kubernetes.io/docs/concepts/scheduling/kube-scheduler/)
  - [kube-scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/)
  - [Scheduler Performance Tuning](https://kubernetes.io/docs/concepts/scheduling/scheduler-perf-tuning/)

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Logging/Monitoring (5%)
- Understand how to monitor all cluster components.
  - [Tools for Monitoring Resources](https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/)
  - [Resource metrics pipeline](https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/)
  - [Monitor Node Health](https://kubernetes.io/docs/tasks/debug-application-cluster/monitor-node-health/)
- Understand how to monitor applications.
  - [Application Introspection and Debugging](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/)
  - [Debug a StatefulSet](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-stateful-set/), etc.
  - [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
- Manage cluster component logs.
  - [Troubleshoot Clusters](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/)
  - [Auditing](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/)
  - [Logging Architecture](https://kubernetes.io/docs/concepts/cluster-administration/logging/)
- Manage application logs.
  - [Troubleshoot Applications](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/) 

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Application Lifecycle Management (8%)
- Understand Developments and how to perform rolling updates and rollbacks.
  - [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
- Know various ways to configure applications.
  - :question:
  - [Configure a Pod to Use a ConfigMap](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/), etc.
  - [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/)
- Know how to scale applications.
  - [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
  - [Horizontal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)
  - [Scale a StatefulSet](https://kubernetes.io/docs/tasks/run-application/scale-stateful-set/)
- Understand the primitives necessary to create a self-healing application. [^1]
  - :question: 
  - [ReplicationController](https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/)
  - [Configure Liveness, Readiness and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)

[^1]: [Self-healing](https://kubernetes.io/) か？ - Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve.

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Cluster (11%)
- Understand Kubernetes cluster upgrade process.
  - [Upgrading kubeadm clusters](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/)
  - [Cluster Management](https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/)
- Facilitate operating system upgrades.
  - :question: 
  - [Cluster Management](https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/)
- Implement backup and restore methodologies.
  - [Operating etcd clusters for Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/)

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Security (12%)
- Know how to configure authentication and authorization.
  - [Controlling Access to the Kubernetes API](https://kubernetes.io/docs/reference/access-authn-authz/controlling-access/), etc.
- Understand Kubernetes security primitives.
  - [Controlling Access to the Kubernetes API](https://kubernetes.io/docs/reference/access-authn-authz/controlling-access/), etc.
- Know to configure network policies.
  - [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
  - [Declare Network Policy](https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy/)
  - [Use Calico for NetworkPolicy](https://kubernetes.io/docs/tasks/administer-cluster/network-policy-provider/calico-network-policy/), etc.
- Create and manage TLS certificates for cluster components.
  - [Manage TLS Certificates in a Cluster](https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/)
  - [Certificate Rotation](https://kubernetes.io/docs/tasks/tls/certificate-rotation/)
  - [TLS bootstrapping](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/)
- Work with images securely.
  - :question: 
  - [Pull an Image from a Private Registry](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)
- Define security contexts.
  - [Pod Security Policies](https://kubernetes.io/docs/concepts/policy/pod-security-policy/)
  - [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
- Secure persistent key value store. [^2]
  - :question: 
  - [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/)
  - [Operating etcd clusters for Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/)

[^2]: persistent key value store = etcd or secret?

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Storage (7%)
- Understand persistent volumes and know how to create them.
  - [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
  - [Configure a Pod to Use a PersistentVolume for Storage](https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/)
- Understand access modes for volumes.
  - [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) 
- Understand persistent volume claims primitive.
  - [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)  
- Understand Kubernetes storage objects.
  - :question: 
  - [Volumes](https://kubernetes.io/docs/concepts/storage/volumes/), etc.
- Know how to configure applications with persistent storage.
  - [Configure a Pod to Use a PersistentVolume for Storage](https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/) 

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Troubleshooting (10%)
- Troubleshoot application failure.
  - [Application Introspection and Debugging](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/)
  - [Debug a StatefulSet](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-stateful-set/)
  - [Debug Init Containers](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-init-containers/)
  - [Debug Pods and ReplicationControllers](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-pod-replication-controller/)
  - [Determine the Reason for Pod Failure](https://kubernetes.io/docs/tasks/debug-application-cluster/determine-reason-pod-failure/)]
  - [Troubleshoot Applications](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/)
- Troubleshoot control plane failure.
  - [Troubleshoot Clusters](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/)
- Troubleshoot worker node failure.
  - [Troubleshoot Clusters](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/)
- Troubleshoot networking.
  - [Debug Services](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)
  - [Debugging DNS Resolution](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/)

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Core Concepts (19%)
- Understand the Kubernetes API primitives.
  - [The Kubernetes API](https://kubernetes.io/docs/concepts/overview/kubernetes-api/)
  - [Understanding Kubernetes Objects](https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/)
- Understand the Kubernetes cluster architecture.
  - [Kubernetes Components](https://kubernetes.io/docs/concepts/overview/components/)
  - [Nodes](https://kubernetes.io/docs/concepts/architecture/nodes/), etc.
- Understand Services and other network primitives.
  - [Endpoint Slices](https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/), etc.

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Networking (11%)
- Understand the networking configuration on the cluster nodes.
  - :question:
  - [Cluster Networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/)
- Understand Pod networking concepts.
  - :question: 
  - [Cluster Networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/)
- Understand service networking.
  - :question: 
  - [Service](https://kubernetes.io/docs/concepts/services-networking/service/)
- Deploy and configure network load balancer.
  - [Create an External Load Balancer](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/)
- Know how to use Ingress rules.
  - [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/)
  - [Set up Ingress on Minikube with the NGINX Ingress Controller](https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/)
- Know how to configure and use the cluster DNS.
  - [DNS for Services and Pods](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/)
  - [Customizing DNS Service](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
  - [Configure DNS for a Cluster](https://kubernetes.io/docs/tasks/access-application-cluster/configure-dns-cluster/) 
- Understand CNI.
  - [Network Plugins](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)

[v1.15](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.15.pdf) との差分なし

# Installation, Configuration & Validation (12%)
- Design a Kubernetes cluster.
  - :question: 
  - [Nodes](https://kubernetes.io/docs/concepts/architecture/nodes/), etc.
- Install Kubernetes masters and nodes.
  - :question: 
  - [Installing kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)
  - [Creating a single control-plane cluster with kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)
- Configure secure cluster communications.
  - :question: 
- Configure a Highly-Available Kubernetes cluster.
  - :question: 
  - [Options for Highly Available topology](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ha-topology/)
  - [Creating Highly Available clusters with kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/)
  - [Set up a High Availability etcd cluster with kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/)
- Know where to get the Kubernetes release binaries.
  - [v1.16 Release Notes](https://kubernetes.io/docs/setup/release/notes/)
- Provision underlying infrastructure to deploy a Kubernetes cluster.
  - :question: 
- Choose a network solution.
  - [Cluster Networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/)
- Choose your Kubernetes infrastructure configuration.
- Run end-to-end tests on your cluster.
  - :question: 
- Analyse end-to-end tests results.
  - :question: 
- Run Node end-to-end tests.
  - :question: 
- Install and use kubeadm to install, configure, and manage Kubernetes clusters. 
  - see Install Kubernetes masters and nodes, etc.

(new kubeadm competency coming in 1.15)

# ref.
https://github.com/walidshaari/Kubernetes-Certified-Administrator