쿠버네티스 기초
+이 튜토리얼에서는 쿠버네티스 클러스터 오케스트레이션 시스템의 기초를 익힐 수 있는 가이드를 제공한다. 각각의 모듈에는 쿠버네티스의 주요 기능과 개념에 대한 배경 지식이 담겨 있으며 대화형 온라인 튜토리얼도 포함되어 있다. 대화형 튜토리얼에서 간단한 클러스터와 그 클러스터 상의 컨테이너화된 애플리케이션을 직접 관리해볼 수 있다.
+대화형 튜토리얼을 사용해서 다음의 내용을 배울 수 있다.
+-
+
- 컨테이너화된 애플리케이션을 클러스터에 배포하기 +
- 디플로이먼트를 스케일링하기 +
- 컨테이너화된 애플리케이션을 새로운 소프트웨어 버전으로 업데이트하기 +
- 컨테이너화된 애플리케이션을 디버그하기 +
이 튜토리얼에서는 Katacoda를 사용해서 독자의 웹브라우저에서 Minikube가 동작하는 가상 터미널을 구동시킨다. Minikube는 로컬에 설치할 수 있는 작은 규모의 쿠버네티스로써 어디에서든 작동된다. 어떤 소프트웨어도 설치할 필요가 없고, 아무 것도 설정할 필요가 없다. 왜냐하면 대화형 튜토리얼이 웹브라우저 자체에서 바로 동작하기 때문이다.
++ +
쿠버네티스가 어떤 도움이 될까?
+오늘날의 웹서비스에 대해서, 사용자는 애플리케이션이 24/7 가용하기를 바라고, 개발자는 하루에도 몇 번이고 새로운 버전의 애플리케이션을 배포하기를 바란다. 컨테이너화를 통해 소프트웨어를 패키지하면 애플리케이션을 다운타임 없이 쉽고 빠르게 릴리스 및 업데이트할 수 있게 되어서 이런 목표를 달성하는데 도움이 된다. 쿠버네티스는 이렇게 컨테이너화된 애플리케이션을 원하는 곳 어디에든 또 언제든 구동시킬 수 있다는 확신을 갖는데 도움을 주며, 그 애플리케이션이 작동하는데 필요한 자원과 도구를 찾는 것을 도와준다. 쿠버네티스는 구글의 컨테이너 오케스트레이션 부문의 축적된 경험으로 설계되고 커뮤니티로부터 도출된 최고의 아이디어가 결합된 운영 수준의 오픈 소스 플랫폼이다.
+
**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification). Kubeadm also supports other cluster
+lifecycle functions, such as upgrades, downgrade, and managing [bootstrap tokens](/docs/reference/access-authn-authz/bootstrap-tokens/).
+
+Because you can install kubeadm on various types of machine (e.g. laptop, server,
+Raspberry Pi, etc.), it's well suited for integration with provisioning systems
+such as Terraform or Ansible.
+
+kubeadm's simplicity means it can serve a wide range of use cases:
+
+- New users can start with kubeadm to try Kubernetes out for the first time.
+- Users familiar with Kubernetes can spin up clusters with kubeadm and test their applications.
+- Larger projects can include kubeadm as a building block in a more complex system that can also include other installer tools.
+
+kubeadm is designed to be a simple way for new users to start trying
+Kubernetes out, possibly for the first time, a way for existing users to
+test their application on and stitch together a cluster easily, and also to be
+a building block in other ecosystem and/or installer tool with a larger
+scope.
+
+You can install _kubeadm_ very easily on operating systems that support
+installing deb or rpm packages. The responsible SIG for kubeadm,
+[SIG Cluster Lifecycle](https://github.com/kubernetes/community/tree/master/sig-cluster-lifecycle), provides these packages pre-built for you,
+but you may also on other OSes.
+
+
+### kubeadm Maturity
+
+| Area | Maturity Level |
+|---------------------------|--------------- |
+| Command line UX | beta |
+| Implementation | beta |
+| Config file API | alpha |
+| Self-hosting | alpha |
+| kubeadm alpha subcommands | alpha |
+| CoreDNS | GA |
+| DynamicKubeletConfig | alpha |
+
+
+kubeadm's overall feature state is **Beta** and will soon be graduated to
+**General Availability (GA)** during 2018. Some sub-features, like self-hosting
+or the configuration file API are still under active development. The
+implementation of creating the cluster may change slightly as the tool evolves,
+but the overall implementation should be pretty stable. Any commands under
+`kubeadm alpha` are by definition, supported on an alpha level.
+
+
+### Support timeframes
+
+Kubernetes releases are generally supported for nine months, and during that
+period a patch release may be issued from the release branch if a severe bug or
+security issue is found. Here are the latest Kubernetes releases and the support
+timeframe; which also applies to `kubeadm`.
+
+| Kubernetes version | Release month | End-of-life-month |
+|--------------------|----------------|-------------------|
+| v1.6.x | March 2017 | December 2017 |
+| v1.7.x | June 2017 | March 2018 |
+| v1.8.x | September 2017 | June 2018 |
+| v1.9.x | December 2017 | September 2018 |
+| v1.10.x | March 2018 | December 2018 |
+| v1.11.x | June 2018 | March 2019 |
+| v1.12.x | September 2018 | June 2019 |
+
+{{% /capture %}}
+
+{{% capture prerequisites %}}
+
+- One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS
+- 2 GB or more of RAM per machine. Any less leaves little room for your
+ apps.
+- 2 CPUs or more on the master
+- Full network connectivity among all machines in the cluster. A public or
+ private network is fine.
+
+{{% /capture %}}
+
+{{% capture steps %}}
+
+## Objectives
+
+* Install a single master Kubernetes cluster or [high availability cluster](https://kubernetes.io/docs/setup/independent/high-availability/)
+* Install a Pod network on the cluster so that your Pods can
+ talk to each other
+
+## Instructions
+
+### Installing kubeadm on your hosts
+
+See ["Installing kubeadm"](/docs/setup/independent/install-kubeadm/).
+
+{{< note >}}
+**Note:** If you have already installed kubeadm, run `apt-get update &&
+apt-get upgrade` or `yum update` to get the latest version of kubeadm.
+
+When you upgrade, the kubelet restarts every few seconds as it waits in a crashloop for
+kubeadm to tell it what to do. This crashloop is expected and normal.
+After you initialize your master, the kubelet runs normally.
+{{< /note >}}
+
+### Initializing your master
+
+The master is the machine where the control plane components run, including
+etcd (the cluster database) and the API server (which the kubectl CLI
+communicates with).
+
+1. Choose a pod network add-on, and verify whether it requires any arguments to
+be passed to kubeadm initialization. Depending on which
+third-party provider you choose, you might need to set the `--pod-network-cidr` to
+a provider-specific value. See [Installing a pod network add-on](#pod-network).
+1. (Optional) Unless otherwise specified, kubeadm uses the network interface associated
+with the default gateway to advertise the master's IP. To use a different
+network interface, specify the `--apiserver-advertise-address=