K8S 控制器 service ingress

2023-05-16

控制器

Pod 的分类

自主式 Pod:Pod 退出后不会被创建

控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目

控制器类型

Replication Controller和ReplicaSet 、Deployment 、DaemonSet 、StatefulSet、Job、CronJob HPA全称Horizontal Pod Autoscaler

       ReplicaSet 是下一代的 Replication Controller,官方推荐使用ReplicaSet。 ReplicaSet 和 Replication Controller 的唯一区别是选择器的支持,ReplicaSet 支持新的基于集合的选择器需求。 ReplicaSet 确保任何时间都有指定数量的 Pod 副本在运行。 虽然 ReplicaSets 可以独立使用,但今天它主要被Deployments 用作协调 Pod 创建、删除和更新的机制。

       StatefulSet是用来管理有状态应用的工作负载 API 对象。实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,称为“有状态应用”  StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供*序号和唯一性保证*。  StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值: 稳定的、唯一的网络标识符。 稳定的、持久的存储。 有序的、优雅的部署和缩放。 有序的、自动的滚动更新。

       Deployment 为 Pod 和 ReplicaSet 提供了一个申明式的定义方法。 典型的应用场景: 用来创建Pod和ReplicaSet 滚动更新和回滚 扩容和缩容 暂停与恢复。

Job控制器

执行批处理任务,仅执行一次任务,保证任务的一个或多个Pod成功结束。

 给三台机器下载per1

 复制文件并编辑

 

 

CronJob控制器

CronJob HPA全称Horizontal Pod Autoscaler,根据资源利用率自动调整service中Pod数量,实现Pod水平自动缩放。

 

 

 

 

 

service

• Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应 用可以方便地实现服务发现和负载均衡。

• service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)

• service的类型:

• ClusterIP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。

• NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个 NodeIP:nodePort都将路由到ClusterIP。

• LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均 衡器,并将请求转发到 :NodePort,此模式只能在云服务器上使用。

• ExternalName:将服务通过 DNS CNAME 记录方式转发到指定的域名(通过 spec.externlName 设定)。

• Service 是由 kube-proxy 组件,加上 iptables 来共同实现的.

• kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的 iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU 资源。

• IPVS模式的service,可以使K8s集群支持更多量级的Pod。

从外部访问 Service ,适用于公有云上的 Kubernetes 服务。这时 候,你可以指定一个 LoadBalancer 类型的 Service。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  ports:
    - name: http
      port: 80
      targetPort: 80

 

 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
  labels:
    app: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: myapp:v1

 

 

 

ExternalName

 从外部访问的第三种形式ExtenalName,通过给定域名访问解析

拉起容器后查看服务信息,可以看到externalname额外的域名  

 

apiVersion: v1

kind: Service

metadata:

name: my-service

spec:

type: ExternalName

externalName: test.baidu.com

 

更改为百度

 查询svc发现更改

下载网站内容

 

 查看镜像名称

 搜索镜像

 

 

 

 

 

 

 

 更改镜像名称后

 开启服务查看结果

 

 

 

 

 ingress服务

一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。  

详情登录官网查看:https://kubernetes.github.io/ingress-nginx/ 

 

 复制官方文档 内容

 

 apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-myservicea
spec:
  rules:
  - host: www1.westos.org
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web1
            port:
              number: 80
  ingressClassName: nginx

 

 

kubectl describe ingress ingress-myservice

 

Ingress TLS 配置 

 

 

 

 

 

 

 

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"

 

 

 

vim ingress.yaml

进入set paste模式编辑 不会出缩进问题

 访问http://www1.westos.org/

 

 

 添加认证

 

 


apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-myservicea
  annotations:
    nginx.ingress.kubernetes.io/app-root: /hostname.html  
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - qaq'
spec:
  tls:
    - hosts:
      - www1.westos.org
      secretName: tls-secret
  rules:
  - host: www1.westos.org
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web1
            port:
              number: 80
  - host: www2.westos.org
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web2
            port:
              number: 80

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

K8S 控制器 service ingress 的相关文章

  • 在不同域的远程计算机上启动 Windows 服务

    我的电脑位于域 A 中 远程服务器位于域 B 中 我想使用 c 或任何其他语言或脚本从我的电脑重新启动服务器上的服务 Notes 我通过 VPN 连接到服务器 这意味着我可以手动 RDP 服务器并可以手动重新启动服务 我无法使用本地服务窗口
  • 在JavaFX中后台执行任务

    我想在 TilePane 中加载最多九个面板 对于每个窗格 我必须首先运行内容计算 大约 300 毫秒 然后必须构建面板 大约 500 毫秒 我想要的是 有九个 ProgressIndicators 在计算后与每个面板进行交换 我尝试过Pl
  • 工厂、服务和 util 类是什么(以及它们之间的区别)?软件项目中还有更多概念吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 适用于 Windows 的 Python 服务存在一些问题

    我已经检查了至少几十个与我类似的案例 但仍然没有找到解决方案 我希望有人能提供一些线索 这里一定有我遗漏的东西 我正在使用Python3 6制作Windows服务 如果该服务未运行 则必须运行 exe文件 这是 py import win3
  • 检测服务中的屏幕方向变化[重复]

    这个问题在这里已经有答案了 一个非常简单直接的问题 服务是否可以检测屏幕方向的变化 如果是这样 怎么办 此链接将回答您的问题 如何使用服务来监控 Android 中的方向变化 https stackoverflow com question
  • 使用 C# 更改 Windows 服务凭据的最佳方法是什么

    我需要使用 C 更改现有 Windows 服务的凭据 我知道有两种不同的方法可以做到这一点 更改ServiceConfig 参见pinvoke net 上的 ChangeServiceConfig http www pinvoke net
  • 如何将数据从活动传递到正在运行的服务

    我想定期向服务器发送数据 我正在使用后台Service为此 但我想在数据更新时发送 并且我正在获取更新的数据Activity和Service在后台运行 那么我如何将数据传递给运行Service from Activity Using Int
  • 如何将@request注入到服务中?

    当我尝试将 request 注入到我的任何服务中时 我收到此异常 ScopeWideningInjectionException 检测到范围扩大注入 定义 service navigation 引用服务 request 属于比较窄的范围 一
  • 4 层(对于 N 层)架构示例?

    最近 我的一个朋友向我询问 N 层架构 我能够通过示例向他解释 1 2 和 3 层架构 但当我想给出超过 3 层的例子时 我就陷入了困境 我用谷歌搜索并大量寻求帮助 但找不到任何像样的例子 事实上 它被命名为 N 层 这让我认为 N 可以是
  • WCF中不使用CallBack将数据推送到客户端

    是否可以在 WCF 服务中将数据推送到客户端而不使用回调 设想 有 2 个客户端使用服务 客户端1发送消息 然后客户端2收到客户端1发送的消息 解决这个问题有几种方法 Use 发布 订阅框架 http msdn microsoft com
  • CreateProcessAsUser 和 LogonUser 无密码

    使用 WTSGetActiveConsoleSessionId 和 WTSQueryUserToken 我知道作为 SYSTEM 运行的服务可以在当前桌面上启动应用程序 http blog dcuktec com 2009 05 pytho
  • 创建服务(SERVICE_ACCEPT_SESSIONCHANGE)

    我正在尝试按照以下链接中记录的示例创建服务 http msdn microsoft com en us library bb540475 v VS 85 aspx http msdn microsoft com en us library
  • 如何在.NET中创建HTTP请求侦听器Windows服务

    我想创建充当 HTTP 侦听器并可以处理大约 500 个客户端的 Windows 服务 这种服务有什么特别的考虑吗 我对 HTTPListener 类和 TCPListener 类有点困惑 将哪一个用于 Windows 服务将 接受客户端连
  • Android - 即使应用程序被终止或设备重新启动,也会在后台运行服务

    我想保持服务在后台运行 即使我的应用程序被终止 我在用着android intent action USER PRESENT事件 但该服务仅在屏幕解锁时运行 我试过android intent action BOOT COMPLETED但下
  • 电子邮件解析云服务[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Windows 7下PostgreSQL pg_ctl注册错误

    在 Windows 7 PostgreSQL 9 3 2 下 我尝试使用不同的端口号和数据目录将同一服务器上的第二个 PostgreSQL 实例注册为服务 使用 initdb 命令在 C Program Files PostgreSQL 9
  • Angular2 - 多个依赖的顺序 http api 调用

    我正在构建一个 Angular2 应用程序 其中一个组件需要进行多个 API 调用 这些调用依赖于之前的调用 我目前有一项服务可以调用 API 来获取电视节目列表 对于每个节目 我需要多次调用不同的 API 来逐步检查该结构 以确定该节目是
  • Spring - 如何注入具体的接口实现?

    我需要通过 Autowired 注入服务类的具体实现 服务接口 public interface PostService 执行 Service postServiceImpl public class PostServiceImpl imp
  • 在 Windows Server 2008 上安装 Tomcat 7 作为服务

    我想将 tomcat v7 0 12 作为服务安装在 Windows 2008 Server 上 在tomcat页面上我发现本教程 http tomcat apache org tomcat 7 0 doc windows service
  • Robocopy 将文件复制到远程计算机

    我正在尝试编写一个 robocopy 命令将文件从本地计算机复制到任何一台部署服务器 ROBOCOPY MyService bin release remote computer C services myservice MIR 我收到这个

随机推荐

  • Python-TCP服务端程序开发

    文章目录 一 TCP服务端程序开发二 端口复用三 判断客户端程序是否断开四 多任务版本 一 TCP服务端程序开发 span class token triple quoted string string 34 34 34 主动套接字 可以收
  • Python-TCP网络编程基础以及客户端程序开发

    文章目录 一 网络编程基础 什么是IP地址 什么是端口和端口号 TCP介绍 socket介绍 二 TCP客户端程序开发三 扩展 一 网络编程基础 什么是IP地址 IP地址就是标识网络中设备的一个地址 IP地址分为 IPv4 和 IPv6 I
  • HTML介绍

    文章目录 一 HTML介绍二 创建三 HTML结构四 常见的标签五 链接标签六 图片标签七 资源路径八 列表标签九 表格标签十 表单标签十一 表单提交 一 HTML介绍 HTML 超文本标记语言作用 书写前端页面前端三大技术 三大标准 HT
  • CSS介绍

    文章目录 一 CSS介绍二 CSS的引入方式三 CSS选择器 一 CSS介绍 定义 层叠样式表作用 美化界面 设置标签文字大小 颜色 字体加粗等样式控制页面布局 设置浮动 定位等样式 基本语法 选择器 样式规则 样式规则 属性名1 属性值1
  • JavaScript介绍

    文章目录 一 JavaScript介绍二 JavaScript的引入方式三 JavaScript的变量与数据类型四 JavaScript中的函数五 JavaScript变量的作用域六 JavaScript运算符七 JavaScript判断语
  • JQuery介绍

    文章目录 一 JQuery介绍二 JQuery使用三 JQuery选择器四 JQuery选择集过滤五 JQuery选择集转移六 JQuery获取和操作标签内容七 JQuery获取和设置元素属性八 JQuery事件九 JQuery事件代理 事
  • 树莓派操作系统烧录

    准备 硬件 xff1a 树莓派4BMicroSD卡 xff08 16GB xff09 SD卡读卡器 软件 xff1a SD卡格式化软件 xff08 SDFormatter xff09 系统烧录软件 xff08 balenaEtcher xf
  • 嵌入式系统开发必读经典书目

    读本科的时候就对嵌入式系统感兴趣 xff0c 虽然在校的时候积累了大量材料 xff0c 但是在较长的时间里都没有机会细读 xff0c 这学期终于静下心来 xff0c 系统学习一遍 xff0c 期间把以前积累的各类教材或粗粗浏览或仔细揣摩 x
  • 百度笔试题2018

    题外话 首先我要吐槽一下 xff0c csdn简直是在作死啊 xff0c 复制博文底下的那个引用太恶心了 xff0c 我复制自己的博客 xff0c 还有引用 xff0c 啥玩意啊 所以我决定换地方了 xff0c 以后github xff08
  • 统计计算——基于R语言的随机数生成

    统计计算 基于R语言的随机数生成 R中常见一元分布函数 代码展示 xff1a set seed 191206 设置随机数种子 xff0c 为了保证多次生成的随机数一致 xff0c 需要保证数据一样情况下进行再次实验时可用到 N 61 100
  • 第九章 Linux下的虚拟化部署

    第一步 查看CPU信息 打开虚拟机安装程序在四种方式中选择第一种 找到对应镜像 走安装流程 等待安装完成 点击协议 点击我同意 即可打开虚拟机
  • 第二本书 第一章 linux中的网络配置

    配置新网络 ifconfig ping ip 指令的使用 无图形模式生成新网络 nmcil指令的使用 dhcp服务配置 块网卡上配置多个IP 设定dns
  • 阿里云培训-负载均衡(CLB/ALB)

    什么是传统型负载均衡CLB 传统型负载均衡CLB xff08 Classic Load Balancer xff09 是将访问流量根据转发策略分发到后端多台云服务器 xff08 ECS实例 xff09 的流量分发控制服务 CLB扩展了应用的
  • 阿里云培训-AS(弹性伸缩)

    什么是弹性伸缩Auto Scaling 弹性伸缩 xff08 Auto Scaling xff09 是根据业务需求和策略自动调整计算能力 xff08 即实例数量 xff09 的服务 您可以指定实例的类型 xff0c 即ECS实例或ECI实例
  • php源码安装

    php源码安装 下载php的rpm包并解压 在解压之后的目录中 xff0c 查看是否有configure xff0c 如果有此文件 xff0c 使用 configure gt make gt make install方式进行源码安装 roo
  • K8S集群部署

    环境准备 由于k8s 集群比较吃配置 xff0c 使用 按量计费 来进行学习 xff0c 三台 4核8G 的费用大概再 1 6元 小时 三台云服务器 配置 xff1a 2核2G 三台服务器内网互通 xff08 内网可以互相访问 VPC xf
  • K8S Pod

    Pod管理 Pod是可以创建和管理Kubernetes计算的最小可部署单元 xff0c 一个Pod代表着集群中运行的一个进程 xff0c 每个pod都有一个唯一的ip 一个pod类似一个豌豆荚 xff0c 包含一个或多个容器 xff08 通
  • 物联网之嵌入式设备

    物联网自提出以来 xff0c 业界对其定义也不断的加深优化 xff0c 使其更具体 更容易与现实结合 xff0c 不再只停留在概念上 xff0c 这其中离不开从业者的探索与发现 物联网按字面理解分三个部分 xff1a 一 物 xff0c 与
  • WIFI模块接入ONENET步骤

    文章目录 前言思维导图一 onenet c文件1 产品IDONENET程序 2 鉴权信息ONENET程序 3 设备IDONENET程序 二 esp8266 c文件1 WIFI名称及密码程序 2 IP及端口 三 打包数据函数 在onenet
  • K8S 控制器 service ingress

    控制器 Pod 的分类 自主式 Pod xff1a Pod 退出后不会被创建 控制器管理的 Pod xff1a 在控制器的生命周期里 xff0c 始终要维持 Pod 的副本数目 控制器类型 Replication Controller和Re