Kubernetes知识点总结

what

Kubernetes是一个全新的基于容器技术的分布式架构领先方案(源于Brog,是google十几年经验的结晶);

Kubernetes是一个开放的开发平台(无侵入性,现有系统很容器迁移到Kubernetes上);

Kubernetes是一个完备的分布式系统支撑平台(完善的集群管理能力)。

why

使用Kubernetes最直接的感受就是我们可以轻装上阵的开发复杂的系统了;

其次Kubernetes是在全面拥抱微服务架构(微服务的核心就是将一个巨大的单体应用拆分成很多小的互相连接的微服务,一个微服务后面可能是多个实例副本在支撑,副本数量可以随着系统负荷的变化而动态调整);

最后Kubernetes系统架构具备超强的横向扩展能力。

Kubernetes中的基本概念及术语

Master

Master是集群控制节点,运行着kube-apiserver、kube-controller-manager、kube-scheduler、etcd等进程;

Node

集群中除Master节点外的其他节点。

kubectl get nodes;kubectl describe node nodename

Pod

Pod中运行着一组容器,包括一个‘根容器’Pause(1.pause的状态代表整体业务容器的状态,2、业务容器共享pause的IP和volume等)和很多业务容器。一个Pod里的容器与其他主机上的Pod可以直接通信。

Label

一个label就是一个key=value的键值对,Label Selector(标签选择器)通过这个方式实现类似SQL的简单通用的对象查找机制。版本标签、环境标签、架构标签、分区标签、质量控管标签等。

Replication Controller (RC)

RC定义了一个期望场景,即申明某种Pod的副本数量在任意时刻都符合某个预期值。(1、Pod的期望数量;2、用于筛选目标Pod的Label Selector;3、用于创建的Pod模板)。kubectl scale rc rcname --replicas=2。(注意:删除RC不会影响已经创建的Pod)

Deployment

deployment与rc很相似,deployment可以实时知道创建的变化过程。

Horizontal Pod Autoscaler (HPA)

Pod横向自动扩容。通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性的调整目标Pod的副本数。(指标:1、CPUUtilizationPercentage,2、应用自定义指标,tps qps等)

Service(服务)

每个service就是我们经常提起的微服务架构里的一个‘微服务’。

NodeIP:Node节点的IP,实际存在的IP;

PodIP:Pod的IP,是docker engine根据docker0网桥的IP段进行分配的,通常是一个虚拟的二层网络;

ClusterIP:service的IP,是一个虚拟的IP,‘伪造的’IP。

Volume(存储卷)

Volume与Pod的生命周期相同,但与容器的生命周期不相关。

emptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、NFS等

Persistent Volume(PV PVC)

PV可以理解成Kubernetes集群中的某个网络存储中对应的一块存储(1、pv只能是网络存储,不属于任何Node,但可以在每个Node上访问;2、pv并不是定义在Pod上的,而是独立于Pod之外定义的;3、pv支持的类型:GCE Persistent Disks、NFS、RBD、iSCSCI、AWS ElasticBlockStore、GlasterFs等)。pv有状态(available-空闲、bound-已经绑定到某个pvc上、released-对应pvc已经删除,但资源还没有回收、failed-pv自动回收失败)

Namespace(命名空间)

用于资源隔离,分别管理。

Annotation(注解)

记录一些额外信息,如build信息、release信息、日志库、团队联系信息等。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kubernetes 的网络系统是由多个组件组成的, 它们协作为应用程序提供网络连接和通信. 其中一些主要的组件包括: - kube-proxy: 运行在每个节点上, 负责为 Pod 和 Service 提供代理服务. - kube-dns: 为应用程序提供 DNS 服务. - 网络插件: 用于为 Pod 提供网络连接, 支持不同的网络模型, 如 Calico, Flannel, Cilium 等. - Service: 为应用程序提供负载均衡和服务发现. Kubernetes 的网络模型是基于 Pod 的, 每个 Pod 都有一个独立的 IP 地址, 使得容器间直接通信成为可能. Service 则提供了一种发现和负载均衡的机制, 让外部客户端可以访问 Pod. ### 回答2: Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。下面是一些与K8s网络相关的知识点。 1. 服务发现:K8s通过DNS(域名系统)服务提供内部服务发现机制。每个服务都会被分配一个唯一的域名,其他服务可以通过该域名访问该服务。 2. Pod网络:Pod是K8s中的最小调度单元,它可以包含一个或多个容器。每个Pod都有一个唯一的IP地址,容器可以通过本地回环地址访问其他Pod中的容器。 3. 容器网络接口(CNI):CNI是一个规范,用于定义容器网络的实现方式。K8s使用CNI插件来设置和管理Pod的网络。不同的CNI插件可以支持不同的网络方案,如VLAN、VXLAN、Calico等。 4. 服务代理:K8s使用服务代理来实现服务之间的通信。服务代理可以在集群各个节点上运行,并通过负载均衡来分发到后端Pod。 5. 网络策略:K8s允许用户通过网络策略来定义集群中的网络访问规则。网络策略可以限制哪些Pod可以与另一个Pod通信,以及允许的协议和端口。 6. Ingress控制器:Ingress控制器是K8s中用于管理入站网络流量的组件。它可以将外部流量路由到集群内部的服务,并提供负载均衡和SSL终止等功能。 7. 可插拔网络解决方案:K8s提供了一些可插拔的网络解决方案,如Flannel、Calico等。这些解决方案可以根据具体需求选择,以提供不同的网络拓扑结构和性能。 总而言之,K8s网络相关的知识点包括服务发现、Pod网络、CNI、服务代理、网络策略、Ingress控制器和可插拔网络解决方案。这些知识点帮助我们理解和管理K8s集群中的网络配置和通信。 ### 回答3: Kubernetes(简称k8s)是一种用于容器编排和管理的开源平台,它涉及到一些重要的网络概念和组件。 首先,k8s网络模型是基于虚拟网络的概念。每个k8s集群中的容器都会被分配一个独立的IP地址,并且可以通过这个IP地址跨节点进行通信。这是通过一个称为kube-proxy的组件实现的,它会在每个节点上监听API服务器上的变化,并使用iptables或者IPVS等工具在宿主机上进行流量转发。 其次,k8s通过Service和Endpoint来暴露和访问容器。Service是一个逻辑概念,用于封装一组具有相同功能的容器,在集群内部提供服务的访问入口。一个Service可以通过ClusterIP、NodePort或者LoadBalancer等不同的类型暴露。而Endpoint是实际运行容器的IP和端口的集合,用于告诉Service流量应该转发到哪里。 此外,k8s还支持Ingress资源,用于在集群外部暴露服务,实现外部访问。Ingress通过定义一个或多个规则,将外部流量转发到不同的Service上,从而实现域名或路径的复杂路由。 最后,网络插件是k8s网络中的重要组件。k8s提供了一些默认的网络插件,如Flannel、Calico等,用于管理Pod之间的网络通信。网络插件负责创建网络的子网和路由表,并将Pod的IP地址与宿主机的虚拟网卡进行关联。 总结来说,k8s网络涉及到虚拟网络、kube-proxy、Service、Endpoint、Ingress等概念和组件,这些都是为了实现容器间的通信和外部访问的需求。不同的网络插件可以根据具体需求选择,以满足集群的网络需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值