vps知识

k8spod和虚拟主机关系docker和k8s的关系

2023-11-17 14:12:28 vps知识 浏览:31次


1、Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg),它主要用于容器编排启动容器、自动化部署、扩展和管理容器应用和回收容器。

2、Docker和K8s是两个不同的技术,docker是一种容器化技术,而K8s是一种容器编排技术,其主要的区别在于其使用场景和应用范围上。

3、合作关系,Docker作为单一的容器技术工具并不能很好地定义容器的“组织方式”和“管理规范”,难以独立地支撑起生产级大规模容器化部署的要求。

4、官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

5、因此,Kubernetes(k8s)被广泛用于管理Docker集群,这是一个流行的开源容器编排和管理系统。

K8s的网络详解

1、方法三:要实现Pod跨Node通信,以k8s默认网络Flannel为例,就是采用overlay(覆盖网络)实现。具体下面说明:问题:什么是覆盖网络?覆盖网络就是应用层网络,是指建立在另一个网络上的网络。

2、K8S的网络是一个极其复杂的网络,如果想要用两个简单的词来描述K8S网络,那么我觉得扁平和可连通是K8S网络最大的特点(不懂隔离性)。

3、Kubernetes网络模型中每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管它们是否运行在同一个Node(宿主机)中,都要求它们可以直接通过对方的IP进行访问。

4、k8s网络通信介绍完了ipset、ipvs、conntrack,接下来进入正题,看一下ipvs模式下k8s的网络通信。kube-proxy的主要作用是watchapiserver,当监听到pod或service变化时,修改本地的iptables规则或ipvs规则。

5、Cilium是一个基于eBPF和XDP的高性能容器网络方案的开源项目,目标是为微服务环境提供网络、负载均衡、安全功能,主要定位是容器平台。

k8s架构原理

1、kubernetes核心组件说明Kubernetes集群中主要存在两种类型的节点,分别是master节点,以及minion节点。

2、无论在资源管控严格还是资源管控敏捷的场景,资源管理员都希望通过创建K8S的存储接口来管理容器存储资源K8S通过存储声明(PVC)、存储类(SC)和存储插件(driver)联合工作,满足用户一键式定义,创建存储。

3、由于k8s使用的是NAT模式,接下来看下NAT模式下的数据包流向。如下图所示①:请求数据包到达DS,数据包经过PREROUTING链,此时ip包srcip为CIP,dstip为VIP②:由于请求的VIP是DS上的虚拟ip,数据包发往INPUT链。

4、k8s主要由以下几个核心组件:一个kubernetes集群由分布式存储etcd、控制节点controller以及服务节点Node组成。如上图所示,Kubernetes在架构上主要由Master和Node两种类型的节点组成,这两种节点分别对应着控制节点和计算节点。

5、KubeEdge是一个开源的系统,可将本机容器化应用编排和管理扩展到边缘端设备。它构建在Kubernetes之上,为网络和应用程序提供核心基础架构支持,并在云端和边缘端部署应用,同步元数据。

6、最常见的方式是,将日志存储的目录挂载到宿主机上,这样容器被删除的时候日志不会被删除。

Kubernetes-Pod基本概念(六)

在k8s中,Pod是一个容器集合,相当于一组docker,同一pod内所有容器使用IPC相互通信,因为它们共享了IPC,UTS,Network。

Kubernetes系统生成的字符串,用于唯一标识对象。在Kubernetes集群的整个生命周期内创建的每个对象都有一个不同的UID。它旨在区分类似实体的历史事件。KubernetesUID是通用唯一标识符(也称为UUID)。

Kubernetespod是一组容器,是Kubernetes管理的最小单元,Pod有一个IP地址,应用于Pod内的每个容器。

Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。

深入剖析k8s中pod的意义和用法

1、对于每种探测方式,需要设置initialDelaySeconds和timeoutSeconds等参数,它们的含义分别如下。

2、pod从创建到最后的创建成功会分别处于不同的阶段,在源码中用PodPhase来表示不同的阶段:一个pod的完整创建,通常会伴随着各种事件的产生,k8s种事件的种类总共只有4种:PodStatus有一组PodConditions。

3、kubectlget可以列出k8s中所有资源这里只介绍了如何用kubectl获取pod的列表。