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

概念

1. Kubernetes简介

Kubernetes是谷歌开源的容器集群管理系统,是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内部的服务发现和负载均衡

3. Kubernetes基本概念

Cluster

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

Node

一个node就是一个运行着Kubernetes的物理机或虚拟机,并且pod可以在其上面被调度

Pod

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

Label

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

selector

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

Replication Controller

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

Service

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

Volume

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

Secret

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

Name

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

Namespace

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

Annotation(注解)

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

二、kubectl命令

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

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

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

三、资料分享

网站博客

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

原文地址:https://blog.51cto.com/3241766/2413457

时间: 2024-10-08 04:19:34

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

k8s技术--Kubernetes集群kubectl命令的常见使用方法

简介:kubectl是一个命令行界面,用于运行针对Kubernetes群集的命令. 语法: kubectl [command] [TYPE] [NAME] [flags] command:指定您希望对一个或多个资源执行的操作,例如创建,获取,描述,删除. TYPE:指定资源类型. 资源类型区分大小写,可以使用单数,复数或缩写形式. NAME:指定资源的名称. 名称区分大小写. 如果省略名称,则会显示所有资源的详细信息,例如$ kubectl get pod. flags:指定可选标志. 例如,可

k8s实践(四):Controller

环境说明: 主机名 操作系统版本 ip docker version kubelet version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G 备注 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G 备注 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2

k8s实践(七):存储卷和数据持久化(Volumes and Persistent Storage)

环境说明: 主机名 操作系统版本 ip docker version kubelet version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G node节点 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.

k8s实践(八):ConfigMap and Secret

环境说明: 主机名 操作系统版本 ip docker version kubelet version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G node节点 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.

k8s实践(九):Helm and Kubeapps UI

环境说明: 主机名 操作系统版本 ip docker version kubelet version helm version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 v2.14.3 2C2G master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 v2.14.3 2C2G node节点 node02 Centos 7.6.18

k8s实践(三):pod常用操作

环境说明: 主机名 操作系统版本 ip docker version kubelet version 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 node节点 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2 nod

k8s实践(六):Pod资源管理

环境说明: 主机名 操作系统版本 ip docker version kubelet version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G 备注 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G 备注 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.6 V1.14.2

k8s实践(十一):heapster+influxdb+grafana实现kubernetes集群监

环境说明: 主机名 操作系统版本 ip docker version kubelet version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 2C2G master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 2C2G node节点 node02 Centos 7.6.1810 172.27.9.136 Docker 18.09.

k8s kubectl 命令用法集

KUBECTL 命令使用 kubectl 查看所有flag是否有简称 #kubectl api-resourcesNAME SHORTNAMES APIGROUP NAMESPACED KINDbindings true Bindingcomponentstatuses cs false ComponentStatusconfigmaps cm true ConfigMapendpoints ep true Endpointsevents ev true Eventlimitranges lim