arch.ruaniz.com

Scott.Lee, Application Architect

Kubernetes(k8s) : concept and theorem

Created 목요일 20 2월 2017 automating deployment, scaling, and management of containerized applications.

1. Introduce

Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation.

MSA(Micro Service Architecture) : 1~2CPU로 구성해 운영가능한 서비스

2. Concept/Features

Kubernetes는 컨테이너 운영환경(Docker 등)을 관리하기 위한 플랫폼이다.

Kubernetes Cluster Architecture

the architecture of a Kubernetes cluster without the cloud controller manager.Pre CCM Kube Arch

Kubernetes Architecture with the CCM(Cloud Controller Manager)CCM Kube Arch

Components

Master Components

Master components provide the cluster’s control plane. Master components make global decisions about the cluster (for example, scheduling), and they detect and respond to cluster events (for example, starting up a new pod when a deployment’s replicas field is unsatisfied).

Node Components

Node components run on every node, maintaining running pods and providing the Kubernetes runtime environment.

Addons

Addons use Kubernetes resources (DaemonSet , Deployment , etc) to implement cluster features. Because these are providing cluster-level features, namespaced resources for addons belong within the kube-system namespace.

Objects

Object Spec and Status

Every Kubernetes object includes two nested object fields that govern the object’s configuration: the object spec and the object status. The spec, which you must provide, describes your desired state for the object–the characteristics that you want the object to have. The status describes the actual state of the object, and is supplied and updated by the Kubernetes system. At any given time, the Kubernetes Control Plane actively manages an object’s actual state to match the desired state you supplied. 단에서

Describing a Kubernetes Object

When you create an object in Kubernetes, you must provide the object spec that describes its desired state, as well as some basic information about the object (such as a name).

Required Fields

In the .yaml file for the Kubernetes object you want to create, you’ll need to set values for the following fields:

Identifiers and Names

All objects in the Kubernetes REST API are unambiguously identified by a Name and a UID.

Namespaces

Labels and Selectors

Workload

Pods

A Pod is the smallest deployable object in the Kubernetes object model.

Controllers

A Deployment is responsible for creating and updating instances of your application.

Services, Load Balancing, and Networking

Service

An abstract way to expose an application running on a set of Pods as a network service.

DNS

Ingress

Storage

Volumes

Persistent Volumes

9. Appendix

reference site