不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

Kubernetes 入门

k8s基本介绍

什么是k8s

  • k8s是谷歌开源的容器集群管理系统
  • 可以简化应用程序的工作流,加快开发速度

为什么需要k8s

  • 真正的生产型应用会涉及多个容器
  • 容器必须跨多个服务器主机进行部署
  • 借助k8s构建多个容器的应用服务、跨集群调度、扩展这些容器

k8s有哪些应用

  • 跨多台主机进行容器编排
  • 更加充分地利用硬件,最大程度获取运行企业应用所需的资源
  • 利用自动布局、自动重启、自动复制以及自动扩展功能,对应用设施状况检查和自我修复

k8s相关术语

  • 主机(Master):用于复制k8s节点的计算机。所有任务分配都来自于此。
  • 节点(Node):负责执行请求和所分配任务的计算机。由k8s主机负责对节点进行控制。
  • 容器集(Pod):被部署在单个节点上的,且包含一个或多个容器的容器组。同一容器集中的所有容器共享同一个IP地址、IPC、主机名称及其它资源。
  • 服务(Service):将工作内容与容器集分离。
  • kubelet:运行在节点上的服务,可读取容器清单(container mainfest),确保指定的容器启动并运行。
  • kubectl:k8s的命令行配置工具。

k8s架构图

k8s核心组件

  • 集群管理入口:kube-apiserver
  • 管理控制中心:kube-controller-manager
  • 调度器:kube-scheduler
  • 配置中心:etcd
  • 集群管理工具:kubectl
  • 节点Pod管家:kubelet
  • 服务外部代理:kube-proxy

apiserver架构解析

k8s应用创建流程和监听机制

k8s核心组件-Controller Manager

  • 副本控制器:Replication Controller
  • 节点控制器:Node Controller
  • 资源控制器:ResourceQuota Controller
  • 命名空间控制器:Namespace Controller
  • Endpoints控制器:Endpoints Controller
  • 服务控制器:Service Controller

k8s核心组件-Replication Manager职责

  • 确保在当前集群中有且仅有N个Pod实例,N是在RC中定义的Pod副本数量
  • 通过调整RC的spec.replicas属性值来实现系统扩容或缩容
  • 通过改变RC中的Pod模板(主要是镜像版本)来实现系统的滚动升级

k8s核心组件-ResourceQuota Manager三个层次资源配额管理

  • 容器级别:可以对CPU和Memory进行限制
  • Pod级别:可以对一个Pod内所有容器的可用资源进行限制
  • Namespace级别:为Namespace(多租户)级别的资源限制,包括:Pod、RC、Service、ResourceQuota、Secret、PV数量

k8s核心组件-Endpoints Controller说明

k8s核心组件-Service Controller说明

  • 监听Service的变化
  • 如果Service是一个LoadBalancer类型,则维护LoadBalancer表

kubectl常用命令讲解

命令式资源管理

  • 创建:create(创建一个资源),expose(暴露一个资源)
  • 更新:scale(扩展资源),annotate(添加备注)、label(标签)
  • 删除:delete(删除资源)

资源查看

  • get:显示一个或多个资源的详细信息
  • describe:聚合了相关的信息并输出,比get命令输出的信息更详细。

容器管理

  • log:查看容器log
  • exec:执行命令
  • cp:用于从容器与物理机文件的拷贝

kubectl语法

1
kubectl [command] [TYPE] [NAME] [flags]
  • get:kubectl get pod,svc
  • log:kubectl log mysql
  • exec:kubectl exec -it mysql /bin/bash

k8s中常用资源类型简写

  • Ing:ingresses的简写
  • no:表示集群的nodes节点
  • ns:namespace命名空间的简写
  • rs:replicasets的简写
  • svc:代表服务services
  • ep:endpoints的简写
------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!