Service 的概念Kubernetes Service 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略 —— 通常称为微服务 。这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector

文章插图
核心迭代在 Kubernetes 集群中,每个 Node 运行一个 kube-proxy 进程 。kube-proxy 负责为 Service 实现了一种 VIP(虚拟 IP)的形式,而不是 ExternalName 的形式 。在 Kubernetes v1.0 版本,代理完全在 userspace 。在 Kubernetes v1.1 版本,新增了 iptables 代理,但并不是默认的运行模式 。从 Kubernetes v1.2 起,默认就是 iptables 代理 。在 Kubernetes v1.8.0-beta.0 中,添加了 ipvs 代理
在 Kubernetes 1.14 版本开始默认使用 ipvs 代理
在 Kubernetes v1.0 版本,Service 是 “4层”(TCP/UDP over IP)概念 。在 Kubernetes v1.1 版本,新增了 Ingress API(beta 版),用来表示 “7层”(HTTP)服务
猜想:为什么不擦爱用更为传统的 DNS 实现负载均衡?
1、userspace代理模式

文章插图
2、iptables代理模式

文章插图
3、ipvs代理模式
注意: ipvs 模式假定在运行 kube-proxy 之前在节点上都已经安装了 IPVS 内核模块 。当 kube-proxy 以 ipvs 代理模式启动时,kube-proxy 将验证节点上是否安装了 IPVS 模块,如果未安装,则 kube-proxy 将回退到 iptables 代理模式

文章插图
Service 的类型
- ClusterIp:默认类型,自动分配一个仅 Cluster 内部可以访问的虚拟 IP
- NodePort:在 ClusterIP 基础上为 Service 在每台机器上绑定一个端口,这样就可以通过 <NodeIP>: NodePort 来访问该服务
- LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部负载均衡器,并将请求转发到<NodeIP>: NodePort
- ExternalName:把集群外部的服务引入到集群内部来,在集群内部直接使用 。没有任何类型代理被创建,这只有 kubernetes 1.7 或更高版本的 kube-dns 才支持

文章插图
为了实现图上的功能,主要需要以下几个组件的协同工作:
- apiserver:用户通过 kubectl 命令向 apiserver 发送创建 service 的命令,apiserver 接收到请求后将数据存储到 etcd 中
- kube-proxy:kubernetes 的每个节点中都有一个叫做 kube-porxy 的进程,这个进程负责感知service,pod 的变化,并将变化的信息写入本地的 ipvs 规则中
- ipvs:基于内核的钩子函数机制实现负载
[root@master manifests]# vim myapp-deploy.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: myapp-deploynamespace: defaultspec:replicas: 3selector:matchLabels:app: myapprelease: stabeltemplate:metadata:labels:app: myapprelease: stabelenv: testspec:containers:- name: myappimage: wangyanglinux/myapp:v2imagePullPolicy: IfNotPresentports:- name: httpcontainerPort: 80创建Service信息[root@master manifests]# vim myapp-service.yamlapiVersion: v1kind: Servicemetadata:name: myappnamespace: defaultspec:type: ClusterIPselector:app: myapprelease: stabelports:- name: httpport: 80targetPort: 80Headless Service时不需要或不想要负载均衡,以及单独的 Service IP。遇到这种情况,可以通过指定 Cluster IP ( spec.clusterIP ) 的值为 “ None ” 来创建 Headless Service。这类 Service 并不会分配 Cluster IP,kube-proxy 不会处理它们,而且平台也不会为它们进行负载均衡和路由
- 网游小助手,游戏体验小助手
- 好听的男生古风游戏名字 好听温润的古风男名四字两字
- 游戏点卡批发网站 游戏点卡批发平台
- 掌机小精灵攻略 精灵游戏攻略
- 手机怎么制作小游戏模式 传奇手游脚本制作教程
- 愤怒的小鸟下载游戏中文版 愤怒的小鸟中文版下载
- 愤怒的小鸟小游戏大全 小游戏愤怒的小鸟
- qq游戏你画我猜怎么没有了 qq游戏你画我猜叫什么
- 魔兽世界暗影守护者 暗影守护者游戏手机下载
- 14岁网瘾少年2个月充值dnf点券16W,在游戏里当大佬,现实里却感到愧疚,如何评价?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
