Kubernetes架构介绍
【摘要】 Kubernetes是什么?
Kubernetes是一个跨主机集群的开源容器调度平台。他可以管理各种不同的底层容器。与Openstack类似,OpenStack通过管理底层大量的虚拟化节点构成一个庞大的集群,提供云服务。而k8s通过管理底层的容器节点,自动化应用容器的部署、扩展和操作,提供以容器为中心得基础架构。
Kubernetes是什么?
Kubernetes是一个跨主机集群的开源容器调度平台。他可以管理各种不同的底层容器。与Openstack类似,OpenStack通过管理底层大量的虚拟化节点构成一个庞大的集群,提供云服务。而k8s通过管理底层的容器节点,自动化应用容器的部署、扩展和操作,提供以容器为中心得基础架构。
l一个基础的kubernetes集群包含一个master节点和多个node节点。每个节点可以是一台物理机,也可以是一台虚拟机。
Master 节点提供的集群控制,对集群做出全局性决策,例如调度等。通常在master节点上不运行用户容器。
节点组件运行在每一个Node节点上,维护运行的pod并提供kubernetes运行时环境。
Master节点
Kube-apiserver
kube-apiserver对外暴露了Kubernetes API。它是的 Kubernetes 前端控制层。它被设计为水平扩展,即通过部署更多实例来缩放。
Etcd
etcd 用于 Kubernetes 的后端存储。所有集群数据都存储在此处,始终为您的 Kubernetes 集群的 etcd 数据提供备份计划。
kube-controller-manager
运行控制器,它们是处理集群中常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成独立的可执行文件,并在单个进程中运行。
kube-scheduler
监视没有分配节点的新创建的 Pod,选择一个节点供他们运行。
Node节点
Kube-proxy
Kube-proxy用于管理service的访问入口,包括集群内pod到service的访问和集群外访问service。
Kubelet
Kubelet是在集群内每个节点中运行的一个代理,用于保证pod的运行
容器引擎
通常使用docker来运行容器,也可使用rkt等做为替代方案。
Kubelet的功能
挂载 Pod 所需要的数据卷(Volume)。
下载 Pod 的 secrets。
通过 Docker 运行(或通过 rkt)运行 Pod 的容器。
周期性的对容器生命周期进行探测。
如果需要,通过创建 镜像 Pod(Mirror Pod) 将 Pod 的状态报告回系统的其余部分。
将节点的状态报告回系统的其余部分。
除了上述组件外,kubernetes使用中通常需要一些额外的组件实现特定功能,常用的Add-ons包括:
Core-dns:为整个集群提供DNS服务
Ingress Controller:为service提供外网访问入口
Dashboard: 提供图形化管理界面
Heapster 提供集群资源监控
Flannel:为kubernetes提供方便的网络规划服务
Kubeadm
Kubeadm是社区主推的快速创建Kubernetes集群工具。
kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。它被故意设计为只关心启动集群,而不是之前的节点准备工作。同样的,诸如安装各种各样值得拥有的插件,例如 Kubernetes Dashboard、监控解决方案以及特定云提供商的插件,这些都不在它负责的范围。
Master节点:kubeadm init,快速初始化安装主节点组件
Node节点:kubeadm join,将从节点加入集群
查看组件运行状态
Docker
kubelet
Kubeadm容器化组件
Kubeadm为了实现部署的便捷性,将一些组件封装到了Pod中。
Master 节点
查看node节点的所包含的系统pod
可以看到在node节点中支撑k8s系统的必须组件较少。
命名空间 - namespace
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
命名空间提供了良好的资源隔离,可以用于区分不通的项目、用户等。如开发测试使用的namespace,或者生产使用的namespace。
使用如下命令可以查看哪些对象在命名空间中:
常用命名空间命令
查看存在哪些namespace。
对指定命名空间进行操作,如创建pod,查看pod等,以下是我们之前使用过的查看系统域中pod的命令:
以上命令也可使用简写的方式:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)