第五章 Kubernetes进阶之Service与外界连通

  1.Pod与Service的关系

  Pod出现故障以后Deployment会根据策略重启Pod,但是重启Pod会生成新的IP,需要引入Service概念保证访问正常

  Service

  • 防止Pod失联
  • 定义一组Pod访问策略
  • 支持ClusterIP,NodePort以及LoadBanlancer三种类型
  • Service的底层主要有Iptables和IPVS两种网络模式

  2.Service的定义

  Pod与Service的关系

  • 通过label-selector相关联
  • 通过Service实现Pod的负载均衡(TCP/UDP 4层)

  示例service.yaml

#版本
apiVersion: v1
#类型是service
kind: Service
metadata:
  name: my-service
  namespace: default
spec:
  #service默认clusterIP
  clusterIP: 10.10.10.123
  ports:
  - name: http
    #service端口
    port: 80
    protocol: TCP
    #后端容器端口
    targetPort: 80
  #标签选择器关联后端的一组Pod
  selector:
    run: nginx
      

  创建

kubectl apply -f service.yaml

  因为该service标签匹配一个nginx所以如果没有创建nginx的deployment需要创建一个

kubectl run nginx --replicas=3 --image=nginx --port=80

  创建以后可以查看有对应标签的pod

# kubectl get pod -l run=nginx
NAME                     READY   STATUS    RESTARTS   AGE
nginx-57867cc648-b4rct   1/1     Running   0          9m53s
nginx-57867cc648-qgbwl   1/1     Running   0          9m53s
nginx-57867cc648-qmbbw   1/1     Running   0          9m53s

  查看

# kubectl get svc
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.10.10.1     <none>        443/TCP   6d23h
my-service   ClusterIP   10.10.10.123   <none>        80/TCP    6m25s

  其中name为kubernetes的service是k8s安装以后默认的一个service默认IP的service的第一个IP 10.10.10.1端口是443

  默认的svc的作用是负载均衡后端master的IP

  service需要动态感知后端ip变化可以通过以下命令查看,每个svc管理后端的一组容器

# kubectl get endpoints
NAME         ENDPOINTS                                      AGE
kubernetes   192.168.1.63:6443,192.168.1.64:6443            6d23h
my-service   172.17.41.2:80,172.17.55.2:80,172.17.55.4:80   9m59s

  3.service类型

  4.Service代理模式

  5.DNS

原文地址:https://www.cnblogs.com/minseo/p/12425623.html

时间: 2024-08-30 18:19:38

第五章 Kubernetes进阶之Service与外界连通的相关文章

《四》Service – 与外界连通、Ingress

Service – 与外界连通 介绍Service 防止Pod失联 定义一组Pod的访问策略 支持ClusterIP,NodePort以及LoadBalancer三种类型 Service的底层实现主要有iptables和ipvs二种网络模式 Pod与Service的关系 ? 通过label-selector相关联 ? 通过Service实现Pod的负载均衡( TCP/UDP 4层) 说明:service 通过selector 关联到pod的labels 标签 定义service 查看pod的ap

第四章 Kubernetes进阶之深入理解Pod

Pod 最小部署单元 一组容器的组合 一个Pod中容器共享网络命名空间 Pod是短暂的 Pod容器分类 Infrastructure Container 基础容器 维护整个Pod网络空间 InitContainers 初始化容器 先于业务容器运行 Container 业务容器 并行启动 镜像拉取策略 IfNotPresent:默认值,镜像在宿主机上不存在时才拉取 Alway:每次创建Pod都会拉取一次镜像 Never:Pod永远不会拉取这个镜像 查看默认镜像拉取参数是否是IfNotPresent

Kubernetes进阶之ingress-nginx

Kubernetes进阶之ingress-nginx 目录:一 从外部访问应用最佳方式 二 配置管理 三 数据卷与数据持久卷 四 再谈有状态应用部署 五 K8S 安全机制 说在前面的话,选择nodeport的方式去暴露端口,那你需要得去判断暴露的端口有没有被占用,再创建新的应用会判断端口有没有被分配出去 nodeport本身是基于默认的iptables的代理模式做的网络转发,也就是SANT,DANT,基于四层的,做七层是做不了的,性能差一点,因为它需要防火墙的转发和过滤. 一.从外部访问应用最佳

Linux与云计算——第二阶段 第五章:存储Storage服务器架设—分布式存储Ceph

Linux与云计算--第二阶段Linux服务器架设 第五章:存储Storage服务器架设-分布式存储Ceph 1 Ceph 配置Ceph集群 Install Distributed File System "Ceph" to Configure Storage Cluster. For example on here, Configure Cluster with 1 admin Node and 3 Storage Node like follows. | +------------

Java Persistence with MyBatis 3(中文版) 第五章 与Spring集成

MyBatis-Spring是MyBatis框架的子模块,用来提供与当前流行的依赖注入框架Spring的无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向切面编程(Aspect Oriented Programming,AOP)的Java框架,鼓励使用基于POJO的编程模型.另外,Spring提供了声明式和编程式的事务管理能力,可以很大程度上简化应用程序的数据访问层(data access layer)的实现.在本章中,我们将看到在基于Spring的

Java基础知识二次学习--第五章 数组

第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节  视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 栈里面存的数组的引用 实际对象在堆内存里面 (C与C++是分配在栈里的) 内存图: 元素为引用数据类型的数组 引用类型的数组如上图 时间:2017年4月26日15:16:22~2017年4月26日15:19:00 章节:05章_02节  视频长度:05:25 内容:数组元素的创建与使用 心得: 首

Android学习笔记—第五章 进程与线程

第五章 进程与线程 进程:一个应用程序就是一个进程 (1)进程的优先级: Foreground Process 前台进程 a. 当前用户正在操作的Activity所在的进程 b. 绑定了当前用户操作的Activity的service所在的进程 c. 通过调用了startForeground()方法提升优先级的service所在的进程 d. 正在调用onCreate().onStart().onDestory()方法的service所在的进程 e. 正在调用onReceiver()方法的Broad

2017.2.20 《activiti实战第五章--用户与组及部署管理》(一)用户与组

学习资料:<Activiti实战> 第五章 用户与组及部署管理(一)用户与组 内容概览:讲解activiti中内置的一套用户.组的关系,以及如何通过API添加.删除.查询. 5.1 用户与组 5.1.1 用户 1 public class IdentityServiceTest{ 2 @Rule 3 public ActivitiRule ar = new ActivitiRule();//使用默认的acitiviti.cfg.xml作为参数 4 5 @Test 6 public void t

zabbix专题:第五章 zabbix 添加触发器Triggers

zabbix 添加触发器Triggers 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 本节目录大纲 触发器(triggers)是什么? 实战创建监听80端口的触发器 报警级别介绍 zabbix触发器依赖关系详解 zabbix专题:第五章 zabbix 添加触发器Triggers 触发器(triggers)是什么? 触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,item一收回数据,讲