K8S是基于容器的集群管理平台,它的全称,是Kubernetes 。Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化服务发现和负载均衡、存储编排、自动部署和回滚、自动完成装箱计算、自我修复、密钥与配置管理。
-
与容器关系
将Docker应用于具体的业务实现,存在容器编排、管理和调度等各个方面实现复杂。迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。 -
K8S主要有Master和Node节点组成。
k8s集群组成图如下:
image.png
(1)Master(主节点): 控制 Kubernetes 节点的机器,也是创建作业任务的地方,包括Controller manager、Scheduler、API Server。
1)Kubernetes Controller Manager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心。内容包括Replication controller(复制控制器)等,其中Replication controller控制一个 pod 在集群上运行的实例数量。
2)Kubernetes API Server(kube-apiserver):提供HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。
3)Kubernetes Scheduler(kube-scheduler):负责资源调度(Pod调度)的进程。
4)etcd是一个非常可靠的kv存储系统,常在分布式系统中存储着关键的数据。常见应用场景: 配置中心、分布式锁、 leader选举组件、服务注册与服务发现、消息订阅和发布。
(2)Node(节点): 这些机器在 Kubernetes 主节点的控制下执行被分配的任务。
1)Kubelet: 这个守护进程运行在各个工作节点上,负责获取容器列表,保证被声明的容器已经启动并且正常运行。
2)Pod: 由一个或多个容器构成的集合,作为一个整体被部署到一个单一Node节点。同一个 pod 中的容器共享 IP 地址、进程间通讯(IPC)、主机名以及其它资源。Pod 将底层容器的网络和存储抽象出来,使得集群内的容器迁移更为便捷。
3)Service(服务): 将服务内容与具体的 pod 分离。Kubernetes 服务代理负责自动将服务请求分发到正确的 pod 处,不管 pod 移动到集群中的什么位置,甚至可以被替换掉。 -
命令行配置工具
kubectl: 这是 Kubernetes 的命令行配置工具。
常用命令如下:
#必须得指定namespace,因为系统中存在多个namespace
#获取namespace下的pod列表,prophecis是namespace名
kubectl get -n prophecis pod
#查看所有服务是否正常Running,若异常通过kubectl describe及kubectl log查看异常原因
#描述pod,metacontroller-0是pod名
kubectl describe pod metacontroller-0 -n prophecis
#获取pod日志,controlcenter-go-deployment-69d44b79cc-6fzhq是pod名
kubectl logs controlcenter-go-deployment-69d44b79cc-6fzhq -n prophecis
网友评论