Kubernetes
一、Kubernetes简介
- Kubernetes 由Google团队发起并维护的基于Docker的开源容器集群管理系统, 目标是管理跨多个主机的容器, 它不仅支持常见的云平台, 而且支持内部数据中心;
- 核心概念是 Container Pod–> 一个 Pod(容器集合)由一组工作于同一物理工作节点的容器构成, 组容器拥有相同的网络命名空间, IP以及存储配额, 也可以根据实际情况对每一个 Pod 进行端口映射;
- 控制组件:kube-apiserver、kube-scheduler、kube-controller-manager、etcd
- 计算组件:kubelet、kube-proxy、Container runtime(Pod、Containers)

二、Kubernetes组件介绍
-
Master节点
- kube-apiserver:API集群统一入口,各组件协调者,以HTTP API提供接口服务,所有对象资源的增删查改和监听操作都交给APIServer处理后再提交给Etcd存储;
- kube-scheduler:(调度器)负责对资源进行调度,分配未分发 Pod绑定到可用的Node节点上,存储到etcd中;
- kube-controller-manager:管理控制器,一个资源对应一个控制器,CotrolerManager负责管理监控pod运行状态,根据 etcd中的信息, 调用 node中的kubelet创建Pod;
- Etcd:用来保存集群所有状态的 Key/Value存储系统,所有 Kubernetes组件会通过 API Server来跟 Etcd进行沟通从而保存或读取资源状态,如Pod、service等对象信息;
-
Node节点
- kubelet:是 Master在 Node节点上的 Agent,负责具体的容器生命周期管理,根据从数据库中获取的信息来管理容器,并上报 pod运行状态等,下载secret、获取容器与节点状态,kubelet将每个 Pod装换成一组容器;
- kube-proxy:在 Node节点实现 Pod网络代理;
- docker/rocker/rkt:运行容器;
- calico、coredns


三、Kubernetes搭建
kubernetes-搭建之二进制部署
kubernetes-Kubeadm双活master安装(HA)
kubernetes-Kubeadm单master安装
kubernetes-Kubeadm单master(CRI为containerd)
四、Kubernetes使用
Pod定义:Pod是Kubernetes中的最小调度单元,k8s是通过定义一个Pod的资源,然后在Pod里面运行容器,容器需要指定一个镜像,就可以用来运行具体的服务。一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。也就是说,应该把整个pod看作虚拟机,然后每个容器相当于运行在虚拟机的进程;
Pod网络:Pod是有IP地址的,每个pod都被分配唯一的IP地址(IP地址是靠网络插件calico、flannel、weave等分配的),Pod中的容器共享网络名称空间,包括IP地址和网络端口,Pod内部的容器可以使用localhost相互通信,Pod中的容器也可以通过网络插件calico与其他节点的Pod通信;
Pod存储:Pod创建的时候可以指定挂载的存储卷,Pod中的所有容器都可以访问共享卷,允许这些容器共享数据,Pod只要挂载持久化数据卷,Pod重启之后数据还是会存在的;
Kubernetes支持多个虚拟集群,它们底层依赖于同一个物理集群,这些虚拟集群被称为命名空间,命名空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为test、devlopment、.production环境分别创建各自的命名空间。
本文来自博客园,作者:anyu967,转载请注明原文链接:https://www.cnblogs.com/anyu967/articles/17331774.html
浙公网安备 33010602011771号