概念

1. Kubernetes简介

Kubernetes是google开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括:

  • 基于容器的应用部署、维护和滚动升级
  • 负载均衡和服务发现
  • 跨机器和跨地区的集群调度
  • 自动伸缩
  • 无状态服务和有状态服务
  • 广泛的 Volume 支持
  • 插件机制保证扩展性

Kubernetes 发展非常迅速,已经成为容器编排领域的领导者。

2. Kubernetes核心组件

Kubernetes 主要由以下几个核心组件组成:

  • etcd 保存了整个集群的状态;
  • apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  • controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  • scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
  • kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
  • Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI);
  • kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡

k8s实践(二):基本概念、kubectl命令和资料分享

3. Kubernetes基本概念

Cluster

集群是指由Kubernetes使用一系列的物理机、虚拟机和其他基础资源来运行你的应用程序

Node

一个node就是一个运行着Kubernetes的物理机或虚拟机,并且pod可以在其上面被调度
k8s实践(二):基本概念、kubectl命令和资料分享

Pod

一个pod对应一个由相关容器和卷组成的容器组

k8s实践(二):基本概念、kubectl命令和资料分享

Label

一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可识别的属性。Label还可以被应用来组织和选择子网中的资源

selector

是一个通过匹配labels来定义资源之间关系得表达式,例如为一个负载均衡的service指定所目标Pod

Replication Controller

replication controller是为了保证一定数量被指定的Pod的复制品在任何时间都能正常工作。它不仅允许复制的系统易于扩展,还会处理当pod在机器在重启或发生故障的时候再次创建一个

ReplicaSet

在新版本的Kubernetes中建议使用ReplicaSet来取代ReplicationCtronller。ReplicaSet跟ReplicationCtronller没有本质的不同,只是名字不一样,并且ReplicaSet支持集合式的selector。

Deployment

Deployment为Pod和ReplicaSet提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationController来方便的管理应用。典型的应用场景包括:

  • 定义Deployment来创建Pod和ReplicaSet
  • 滚动升级和回滚应用
  • 扩容和缩容
  • 暂停和继续Deployment

Service

一个service定义了访问pod的方式,就像单个固定的IP地址和与其相对应的DNS名之间的关系

k8s实践(二):基本概念、kubectl命令和资料分享k8s实践(二):基本概念、kubectl命令和资料分享

Volume

一个volume是一个目录,可能会被容器作为未见系统的一部分来访问。Kubernetes volume 构建在Docker Volumes之上,并且支持添加和配置volume目录或者其他存储设备

Secret

Secret存储了敏感数据,例如能允许容器接收请求的权限令牌

Name

用户为Kubernetes中资源定义的名字

Namespace

Namespace 好比一个资源名字的前缀。它帮助不同的项目、团队或是客户可以共享cluster,例如防止相互独立的团队间出现命名冲突

Annotation(注解)

相对于label来说可以容纳更大的键值对,它对我们来说可能是不可读的数据,只是为了存储不可识别的辅助数据,尤其是一些被工具或系统扩展用来操作的数据

二、kubectl命令

kubectl是Kubernetes里的命令行接口,用它来控制Kubernetes集群。
Kubectl的子命令主要分为8个类别:

  • 基础命令(初学者都会使用的)
  • 基础命令(中级)
  • 部署命令
  • 集群管理命令
  • 故障排查和调试命令
  • 高级命令
  • 设置命令
  • 其他命令

熟悉这些命令有助于大家来操作和管理kubernetes集群。

k8s实践(二):基本概念、kubectl命令和资料分享

三、资料分享

网站博客

1.Kubernetes官网
2.Kubernetes Documentation
3.Kubernetes中文社区
4.源码
5.Kubernetes(K8S)中文文档
6.每天5分钟玩转Kubernetes
7.Kubernetes 指南

kubectl参考资料:

1.https://www.bookstack.cn/read/Kubernetes-zh/66.md
2.https://cheatsheet.dennyzhang.com/cheatsheet-kubernetes-a4
3.https://kubernetes.io/docs/reference/kubectl/kubectl/
4.https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
5.https://feisky.gitbooks.io/kubernetes/components/kubectl.html?h=kubectl

书籍

1.《Kubernetes权威指南 从Docker到Kubernetes实践全接触》
2.《Kubernetes in Action中文版》
3.《kubernetes-chinese-docs》
4.《Kubernetes进阶实战》
5.《kubernetes手册2017最新版》
6.《基于Kubernetes的容器云平台实战》
7.《Docker 容器与容器云(第2版)》
8.《Kubernetes指南》
 
下载链接:https://pan.baidu.com/s/1YsA2-X1h0mFQ3rX6tb8WOg
提取码:b7f1