Kubernetes学习笔记

    • Kubernetes介绍
    • 容器的优势
    • Kubernetes对象
    • Namespaces
    • Volume
    • Node
    • Pod
    • ReplicationControllerRC 工作原理
    • Deployment
    • 相关命令

1.Kubernetes介绍

 Kubernetes是容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
 Kubernetes可以在物理或虚拟机的Kubernetes集群上运行容器化应用,Kubernetes能提供一个以“容器为中心的基础架构”

2.容器的优势

 容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚机轻量、更“透明”,这更便于监控和管理。

3.Kubernetes对象

 Kubernetes对象是Kubernetes系统中的持久实体,Kubernetes使用这些实体来表示集群的状态。
 这些实体可以描述为:

  • 容器化应用正在运行(以及在哪些节点上)
  • 这些应用可用的资源
  • 关于这些应用如何运行的策略,如重新策略,升级和容错

 每个对象都包含连个嵌套对象字段:spec和status
 spec:Spec描述了对象所需的状态 - 希望Object具有的特性。
 status:Status描述了对象的实际状态,并由Kubernetes系统提供和更新。

Namespaces

 Kubernetes可以使用Namespaces创建多个虚拟集群。

Volume

 默认情况下容器中的磁盘文件是非持久化的,对于运行在容器中的应用来说面临两个问题:
1.当容器挂掉kubelet将重新启动它时,文件将会丢失
2.当Pod中同时运行多个容器,容器之间需要共享文件时
 volume就解决了这两个问题。
要使用Volume,pod需要指定Volume的类型和内容(spec.volumes字段),和映射到容器的位置(spec.containers.volumeMounts字段)。

Node

 Node是Kubernetes中的工作节点,最开始被称为minion。一个Node可以是VM或物理机。每个Node(节点)具有运行pod的一些必要服务,并由Master组件进行管理,Node节点上的服务包括Docker、kubelet和kube-proxy。

Pod

 Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。
 一个Pod封装一个应用容器(也可以有多个容器),存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。Pod代表部署的一个单位:Kubernetes中单个应用的实例,它可能由单个容器或多个容器共享组成的资源。

ReplicationController(RC) 工作原理

 在用户定义范围内,如果pod增多,则ReplicationController会终止额外的pod,如果减少,RC会创建新的pod,始终保持在定义范围。例如,RC会在Pod维护(例如内核升级)后在节点上重新创建新Pod。

Deployment

 Deployment为Pod和Replica Set(升级版的 Replication Controller)提供声明式更新。
 你只需要在 Deployment 中描述您想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和ReplicaSet 的实际状态改变到您的目标状态。

相关命令

查看创建的rc : #kubectl get rc
查看创建的pod : #kubectl get pods
查看创建的service :kubectl get svc

你可能感兴趣的:(学习笔记)