#Service

Service为Pod提供4层负载均衡, 访问 -> Service -> Pod组

#4种类型

  • ClusterIP 默认,分配一个VIP,只能内部访问
  • NodePort ClusterIP基础上,在每个节点绑定一个对外访问端口
  • LoadBalancer 在NodePort基础上,外部负载均衡器转发到NodePort
  • ExternalName 集群外部的服务引入到集群内部来,集群内部使用

#代理模式

  • iptables 代理模式

  • ipvs 代理模式

    #ips轮询模式
    rr 轮询调度
    lc 最小连接数
    dh 目标哈希
    sh 源哈希
    sed 最短期望延迟
    nq 不排队调度
#svc-demo.yaml

#Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: myapp
release: s1
template:
metadata:
labels:
app: myapp
release: s1
env: test
spec:
containers:
- name: myapp
image: alivv/nginx:node
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80 ---
#ClusterIP
apiVersion: v1
kind: Service
metadata:
name: svc-ip
namespace: default
spec:
type: ClusterIP
selector:
app: myapp
release: s1
ports:
- name: http
port: 80
targetPort: 80 ---
#Headless Service
apiVersion: v1
kind: Service
metadata:
name: svc-headless
namespace: default
spec:
selector:
app: myapp
clusterIP: "None"
ports:
- port: 80
targetPort: 80 ---
#NodePort
apiVersion: v1
kind: Service
metadata:
name: svc-port
namespace: default
spec:
type: NodePort
selector:
app: myapp
release: s1
ports:
- name: http
port: 80
targetPort: 80
---
#ExternalName
kind: Service
apiVersion: v1
metadata:
name: svc-cname
namespace: default
spec:
type: ExternalName
externalName: hub.elven.vip
#创建
kubectl apply -f svc-demo.yaml #查看
kubectl get pod
kubectl get deployment
kubectl get svc ##ClusterIP
#curl访问svc-ip查看轮询效果
svc_ip=$(kubectl get svc |awk '/svc-ip/{print $3}')
for((i=1;i<10;i++));do curl $svc_ip ;done ##Headless Service #无头service
#不分配Cluster IP ,service name直接解析为Pod ip
#查看kube-dns ip 默认是10.96.0.10
kubectl get svc -A |grep kube-dns
#指定dns解析svc
dig -t A @10.96.0.10 svc-headless.default.svc.cluster.local ##NodePort
#访问node-ip:port ##ExternalName
#DNS层CNAME别名方式绑定外部地址,访问Service实际访问外部地址
#指定dns解析svc-cname,查看到cname记录
dig -t A @10.96.0.10 svc-cname.default.svc.cluster.local #删除
kubectl delete -f svc-demo.yaml

Blog地址 https://www.cnblogs.com/elvi/p/11755749.html

本文git地址 https://gitee.com/almi/k8s/tree/master/notes

4.1.k8s.svc(Service)的更多相关文章

  1. Kubernetes K8S之Service服务详解与示例

    K8S之Service概述与代理说明,并详解所有的service服务类型与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master Cent ...

  2. 容器编排系统k8s之Service资源

    前文我们了解了k8s上的DemonSet.Job和CronJob控制器的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14157306.html:今 ...

  3. k8s 无头service 方式向内发布

    k8s 无头service 是指 clusterIP 为 None 的service 案例,假定有一个 deployment,containerPort 端口80,同时还被打上 python=mywe ...

  4. k8s之Service资源

    1.Service概述 service是kubernetes中最核心的资源对象之一,service和pod之间是通过Label串起来,相同的Service的pod的Label是一样的.同一个servi ...

  5. K8S中Service

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

  6. linux运维、架构之路-K8s通过Service访问Pod

    一.通过Service访问Pod 每个Pod都有自己的IP地址,当Controller用新的Pod替换发生故障的Pod时,新Pod会分配到新的IP地址,例如:有一组Pod对外提供HTTP服务,它们的I ...

  7. k8s系列---service

    来源 : http://blog.itpub.net/28916011/viewspace-2214745/ service是要通过coreDNS来管理pod的. kube-proxy始终监视着api ...

  8. 【K8S】Service服务详解,看这一篇就够了!!

    k8s用命名空间namespace把资源进行隔离,默认情况下,相同的命名空间里的服务可以相互通讯,反之进行隔离. 1.1 Service Kubernetes中一个应用服务会有一个或多个实例(Pod, ...

  9. 7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁

    文章目录 怎么跟你说 Service的出现,就是 解决ip不固定的问题 ,怎么解决呢 ? 听小刘慢慢道来 当Pod宕机后重新生成时,其IP等状态信息可能会变动,Service会根据Pod的Label对 ...

随机推荐

  1. hbase权限控制

    HBase的权限管理依赖协协处理器.所以我们需要配置以下参数: hbase.superuser=hbase hbase.coprocessor.region.classes=org.apache.ha ...

  2. 用C#实现DES加密解密封装

    主要用到C#提供的以下三个类:MemoryStream 内存流DESCryptoServiceProvider 加密服务提供者类CryptoStream 讲数据流连接到加密转换的流 using Sys ...

  3. 构造函数为何不能用abstract, static, final修饰

    不同于方法,构造器不能是abstract, static, final的. 1.构造器不是通过继承得到的,所以没有必要把它声明为final的. 2.同理,一个抽象的构造器将永远不会被实现,所以它也不能 ...

  4. Tableau Dashboard

    Dashboard仪表盘,用来展示多个图表,并展示之间的联动,分析数据.

  5. websocket和通信

    最近默默的在学websocket,推荐的当然是阮一峰的博客了,其中也学到了不少  可以去看看咯 http://www.ruanyifeng.com/blog/2017/05/websocket.htm ...

  6. puppet运维自动化之用户管理

    系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户 ...

  7. 【UOJ#450】[集训队作业2018] 复读机

    题目链接 题目描述 群里有\(k\)个不同的复读机.为了庆祝平安夜的到来,在接下来的\(n\)秒内,它们每秒钟都会选出一位优秀的复读机进行复读.非常滑稽的是,一个复读机只有总共复读了\(d\)的倍数次 ...

  8. GO语言学习笔记6-Sort的使用

    GoLang标准库的sort包提供了排序切片和用户自定义数据集以及相关功能的函数. Sort操作的对象通常是一个slice,需要满足三个基本的接口,并且能够使用整数来索引. 1.sort实现原理 So ...

  9. IntelliJ IDEA 2019.3激活破解教程(亲测有效,可激活至 2089 年)

    IntelliJ IDEA 2019.3激活破解教程(亲测有效,可激活至 2089 年) 所有软件安装位置,作者均在无中文.无空格目录下进行操作的 IntelliJ IDEA 2019.3激活破解教程 ...

  10. 3828. 三角形计数 3829. ZCC loves Isaac 3830. 字符消除

    3828 给定n个点的坐标(0<=xi,yi<=10000)求选出任意三个点能组成的三角形的总面积. 题解 太naive了 枚举三角形的y最小的点,把剩余的点按角度排序 然后随便算,可以用 ...