Kubernetes---Service(SVC)服务--ingress api

kubernetes(k8s): service 和 ingress 文章目录一 总述1 service 作用2 service资源及实现模型1 service 概述2 虚拟IP和服务代理1 虚拟IP2 代理模型二 service 资源基本应用1 创建service 资源1 使用命令行创建service资源2 使用配置文件创建service2 service 会话粘滞性1 概述2 设置字段解析3 部署实例并验证3 服务发现1 概述2 服务发现实现机制3 服务发现类型4 服务发现4 服务暴露1 service类型三. ingress资源应用1 概述2 ingress 和 ing 阅读详情
AI摘要

本文详细介绍Kubernetes Ingress API的使用,包括Ingress-Nginx的部署、HTTP与HTTPS代理访问配置、添加BasicAuth认证及URL重定向策略。通过实际操作步骤,深入理解Ingress在7层代理中的应用。

 

对于k8s传统的svc来说 它仅支持4层代理,如果遇到7层代理的话,是没有办法去实现的

k8s官方在1.11中推出了ingress api接口,通过ingress达到7层代理的效果

对于ingress来说,必须要绑定一个域名,因为它是基于7层代理的

 

资料信息 

Ingress-Nginx github 地址:httos://github.com/kubernetes/ingress-nginx 

Ingress-Nginx 官方网站:https:/kubernetes.github.io/ingress-nginx/

 

访问流程图

  本质上是创建了一个Nginx的Node pod,只不过这个无需手写Nginx的配置文件而是通过自动生成的方式实现

⒈部署Ingress-Nginx

  1.下载资源文件

#下载资源文件
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

 

  ⒉创建

kubectl apply -f mandatory.yaml

 

  ⒊查看

kubectl get pod -n ingress-nginx

 

  ⒋选择不同的暴露方案执行【此处选择裸机暴露方案,就是以svc暴露】

复制代码

#下载
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml

#创建
kubectl apply -f service-nodeport.yaml

复制代码

 

  ⒌查看

kubectl get svc -n ingress-nginx

 

⒉Ingress方案

  1.Ingress HTTP 代理访问

    ㈠Deployment

复制代码

apiVersion: extensions/v1beta1
kind: Deployment 
metadata:
  name: nginx-dm 
spec:
  replicas: 2 
  template:
    metadata:
      labels:
        name: nginx 
    spec:
      containers:
        - name: nginx 
          image: fanqisoft/myapp:v1 
          imagePullPolicy: IfNotPresent 
          ports:
            - containerPort: 80

复制代码

    ㈡Service

复制代码

apiVersion: v1 
kind: Service 
metadata:
  name: nginx-svc 
spec:
  ports:
    - port: 80 
      targetPort: 80 
      protocol: TCP 
  selector:
    name: nginx

复制代码

    ㈢Ingress

复制代码

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata:
  name: nginx-test 
spec:
  rules:
    - host: www.coreqi.cn
      http:
        paths:
        - path: / 
          backend:
            serviceName: nginx-svc 
            servicePort: 80

复制代码

    3.查看服务端口

kubectl get svc -n ingress-nginx

    4.将相关域名写入host文件

    5.在浏览器中进行HTTP访问

 

  2.Ingress HTTPS代理访问

     1.创建证书及cert存储方式

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

    2.创建相关资源

      ㈠Deployment

复制代码

apiVersion: extensions/v1beta1
kind: Deployment 
metadata:
  name: deployment3
spec:
  replicas: 2 
  template:
    metadata:
      labels:
        name: nginx3
    spec:
      containers:
        - name: nginx3
          image: fanqisoft/myapp:v3
          imagePullPolicy: IfNotPresent 
          ports:
            - containerPort: 80

复制代码

        ㈡Service

复制代码

apiVersion: v1 
kind: Service 
metadata:
  name: svc-3
spec:
  ports:
    - port: 80 
      targetPort: 80 
      protocol: TCP 
  selector:
    name: nginx3

复制代码

        ㈢Ingress

复制代码

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata:
  name: nginx-test 
spec:
  tls:
    - hosts:
      - foo.bar.com 
      secretName: tls-secret 
  rules:
    - host:foo.bar.com 
      http:
        paths:
          - path: / 
            backend:
              serviceName: svc-3
              servicePort: 80

复制代码

    3.查看服务端口

kubectl get svc -n ingress-nginx

    4.将相关域名写入host文件

    5.在浏览器中进行HTTP访问

 

⒊Nginx添加BasicAuth(基础认证)功能

   1.安装相关模块并创建密钥

  对于Nginx的认证方案来说,采用的是Apache的一个模块,所以在配置Nginx的认证之前,需要先安装Apache的模块.
  因为Ingress的实现方案采用的是Nginx的软件,所以Nginx的相关特性Ingress都支持.

#密码文件的创建
yum -y install httpd
htpasswd -c auth fanqi  #创建密钥文件,文件名为auth,用户名为fanqi
#把该文件以secret方式进行保存,类型为generic
kubectl create secret generic basic-auth --from-file=auth

  2.创建Ingress资源

复制代码

apiVersion: extensions/v1beta1
kind: Ingress 
metadata:
  name: ingress-with-auth 
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic 
    nginx.ingress.kubernetes.io/auth-secret:  basic-auth 
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - foo' 
spec:
  rules:
  - host: foo2.bar.com 
    http:
      paths:
      - path: / 
        backend:
          serviceName: nginx-svc 
          servicePort: 80

复制代码

 ⒋Nginx进行URL重定向

  1.相关属性

名称描述值类型

nginx.ingress.kubernetes.io/rewrite-

target

必须重定向流量的目标URIstring

nginx.ingress.kubernetes.io/ssl-

redirect

指示位置部分是否仅可访问SSL(当Ingress包含证书时
默认为True)

bool

nginx.ingress.kubernetes.io/force-

ssl-redirect

即使lngress未启用TLS,也强制重定向到HTTPSbool

nginx.ingress.kubernetes.io/app-

root

定义Controller必须重定向的应用程序根,如果它在‘/’上下文中string

nginx.ingress.kubernetes.io/use-

regex

指示Ingress上定义的路径是否使用正则表达式bool

   2.创建资源示例

复制代码

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata:
  name: nginx-test 
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: http://foo.bar.com:31795/hostname.html 
spec:
  rules:
  - host: foo10.bar.com 
    http:
      paths:
      - path: / 
        backend:
          serviceName: nginx-svc 
          servicePort: 80

复制代码

 

作者:奇

出处:https://www.cnblogs.com/fanqisoft/

本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。

分类: Kubernetes

好文要顶 关注我 收藏该文  

SpringCore
关注 - 3
粉丝 - 33

+加关注

0

0

« 上一篇: Kubernetes---Service(SVC)服务
» 下一篇: C# DataTable映射成Entity

如何玩转 Kubernetes K8S 可以通过kubectl explain pod 查看pod yaml定义的顶级属性,然后通过类似 kubectl explain pod.{顶级属性}查看二级属性的细节定义。下面给出一个pod资源定义的样例,对pod的描述有一个初步了解。apiVersion: v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本kind: Pod #该配置的类型,我们使用的是Pod。 阅读详情

相关推荐

kintu955.github.io

kintu955.github.io

SVC相关介绍

https://www.cnblogs.com/huxiaopeng/p/5653310.html https://janus.conf.meetecho.com/vp9svctest.html https://w3c.github.io/webrtc-svc/#intro 开源框架Janushttps://blog.youkuaiyun.com/sonysuqin/article/details/8...

zhizhuodewo6的博客 4万+

https://github.com/PlayVoice/so-vits-svc 预训练文件

https://github.com/PlayVoice/so-vits-svc 预训练文件

Github开源系列---Github操作完备指南

一。fork项目以及保持同步 1,首先fork 别人的一个项目: fork 2,在自己的账户下找到刚才的项目,复制自己项目地址 github 指针HEAD 3,clone到本地: git clone 4,如果项目有依赖包,还要安装依赖包。一般 bower install 即可(有bower.json文件时)。 5,fork 之后保持同步(windows环境)...

FeelTouch Labs 1万+

ST-LINK调试原理与STM32硬件连接实战指南

嵌入式调试器是连接开发环境与物理MCU的核心枢纽,其本质是基于ARM CoreSight架构的实时硬件观测与控制接口。它通过JTAG或SWD协议访问内核寄存器、内存及外设,实现断点、单步、内存监视等深度调试能力,远超简单程序烧录功能。ST-LINK作为主流ARM Cortex-M调试器,支持SWD(2线)与JTAG(多线)双模式,在电平匹配、复位控制、引脚复用规避等硬件层面临关键工程约束。掌握VREF参考电压配置、nSRST硬复位接线、调试引脚隔离策略及Keil MDK调试会话配置,是保障STM32稳定联机

weixin_42596214的博客 313

一本集成电路静态时序设计经典之作(可下载)

本书全面深入探讨集成电路设计中关键技术的专著,涵盖了从基础知识到高级应用的各个方面。本书详细介绍了集成电路的发展历程、**静态时序分析的重要性、基本时序模型、时序信息库文件的构建、时序约束的设置、串扰噪声的影响及其控制方法**,并通过实战案例展示了如何进行有效的时序分析和优化。

nuoweishizi的博客 852

无法登陆github官网问题记录

无法登陆github官网问题记录先贴出来我的host文件内容 先贴出来我的host文件内容 感谢以下博主的文章!弄了一天哭了 https://blog.youkuaiyun.com/qq_38232598/article/details/91346392 https://blog.youkuaiyun.com/weixin_45126117/article/details/103160228 https://blog.youkuaiyun.com/weixin_43935907/article/details/90044553 13.229.

qq_41619994的博客 1万+

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2594

Kubernetes Service与Ingress详解

Service 的概念:Kubernetes Service定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略 —— 通常称为微服务。这一组Pod能够被Service访问到,通常是通过Label Selector。一、Service 的概念、二、Service 的类型、三、VIP 和 Service 代理、四、ipvs代理模式、五、Service实验讲解、六、Ingress实验讲解

果子哥丶的博客 1万+

CAPL概述与环境搭建

CANoe和CANalyzer是Vector公司开发的两款用于汽车电子系统开发和测试的工具。CANoe主要用于网络开发、仿真和测试,而CANalyzer则主要用于网络分析和诊断。两者都支持CAPL脚本语言,可以用于编写复杂的测试脚本和仿真模型。CAPL Browser是CANoe/CANalyzer中用于编写、编辑和调试CAPL脚本的工具。它提供了一个集成的开发环境,支持语法高亮、代码自动补全、调试等功能。菜单栏:包含文件操作、编辑、编译、调试等功能。工具栏。

闲人编程的博客 1666

WinCC 7.5 读取 SQL server2016 中的表格数据

环境 win10 SQL Server 2016 WinCC V7.5 SP2 1 安装SQL Server 2016 2 选择服务器名称 .\WINCC 3 建数据库

skr? 7143

k8s组件结构、创建流程和Service服务

从宏观结构和流程层面来理解K8S,为后续落地实践做准备,主要用图形梳理

oatlmy 3739

一文讲透 SAP VDM 命名里的前缀与后缀:看懂 I_、C_、A_,把 CDS 视图栈搭得又稳又好用

SAP S/4HANA 的 CDS 视图命名规范解析 摘要:本文详细解析 SAP S/4HANA 中 CDS 视图的 VDM 命名规范。通过前缀(如 I_、C_、R_)区分视图层级,后缀标记附加角色,结合 @VDM.viewType 注解形成完整语义体系。I_作为稳定接口层,C_面向特定场景裁剪,R_限定应用域内复用,A_提供远程 API 接口。命名规范使团队能快速识别视图用途、依赖关系和扩展边界,确保模型长期可维护性。文章结合制造业物料主数据、Fiori 应用等实际案例,说明如何通过规范命名构建清晰的视图

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 220

k8s中 pod,service,deployment,ingress的使用场景

学习 k8s 之前首先对 k8s 中具体的组件做个简单的了解。1、Pod 是 k8s 中集群部署应用和服务的最小单元;2、RC 是 k8s 集群中最早的保证 Pod 高可用的 API 对象。它的作用就是保证集群中有指定数目的 pod 运行;3、RS 是新一代 RC,提供同样的高可用能力,是目前主要使用的对象;4、Deployment 提供了一种对 Pod 和 ReplicaSet 的管理方式,RS 的使用都是结合 Deployment 来完成的。

北桥源木 2618

掌握C++新特性中智能指针的综合指南

本文是一篇关于C++中智能指针的综合指南,旨在深入探讨现代内存管理的核心概念和技术。智能指针是C++中一种强大的工具,可以帮助开发人员更安全、高效地管理内存资源。通过详细解析各种类型的智能指针,包括unique_ptr、shared_ptr和weak_ptr,读者将了解它们的原理、用法和适用场景。本文将重点介绍智能指针的优势,如自动内存释放、避免内存泄漏和循环引用等问题。此外,还将讨论智能指针与传统指针的区别,并提供一些最佳实践和实用技巧,帮助读者在实际项目中正确、高效地使用智能指针。

Lion_Long的博客 1200

Scrapy爬虫之热门网站数据爬取--------第2关

第2关:小说网站玄幻分类第一页小说爬取 任务描述 本关任务:爬目标网页的3本小说保存到本地MySQL数据库,目标网页为全书网玄幻分类首页。 注:考虑到单机(非分布式)爬虫的爬取时间和测试平台的压力,我们不爬更多页数的小说了,可以作为课下作业自己完善。 xpath匹配:循环获取相同标签下的内容 通过网页分析,我们在获取小说的章节名时,发现他们都在标签<DIV class="clearfix dirconone">下的li的a中: 这时,我们可以先把其中所有的li标签先获取到: titles = r

weixin_44949187的博客 2837

K8S svc原理

Service(svc) 通过标签选择的方式匹配一组Pod对外访问服务的一种机制,每一个svc可以理解为一个微服务。微服务对这一组Pod进行轮循访问 工作原理: 1 k8s在创建service时候,会根据标签选择器selector(Lable selector)来查找pod,据此创建与service同名的endpoint对象,当pod地址发生变化时,endpoint也会随之发生变化,service接收到前端client请求的时候,就会通过endpoint,找到要转发.

qq_42533216的博客 6092

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

四种常用SVC(service)及其与Ingress协作方式

Kubernetes四种Service类型与Ingress协作对比:ClusterIP是Ingress最佳搭档,通过内部虚拟IP实现负载均衡;NodePort在非云环境补充外部访问能力;LoadBalancer借助云平台提供外部固定IP;Headless适用于有状态应用内部通信。Ingress主要与ClusterIP配合,实现七层路由与域名管理,形成"外部入口+内部负载均衡"的分层架构,满足不同场景流量管理需求。

2201_75552298的博客 1788

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Kubernetes(K8s)详解

Kubernetes(K8S)是一个开源的容器编排引擎,用于自动化部署、扩缩和管理容器化应用。其核心架构包括Master Node(含API Server、Scheduler、Controller Manager等组件)和Worker Node(含Kubelet、Kube-Proxy等)。K8S提供核心特性如服务发现、存储编排、自我修复等,支持通过kubectl命令行工具进行资源管理。Namespace用于隔离资源,Pod是最小部署单元,而Deployment则管理Pod的多副本和自愈能力。通过YAML文件

Java资料站 2013

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

k8s的对外服务---ingress

ingress是一个API对象,通过yaml文件进行配置。ingress的作用:是定义请求如何转发到service的规则。相当于一个配置模板ingress通过http和https暴露集群内部的service。ingress给service提供外部的URL域名,负载均衡以及ssl/tls(加密的https)的能力。实现一个基于域名的负载均衡。1、 定义外部流量的路由规则2、 定义了服务的暴露方式、主机名、访问路径和其他的选项。3、 实现负载均衡。这是由ingress-controller实现的。

m0_75209491的博客 2112

Kubernetes 之Ingress 从基础到实战全解析

Kubernetes Ingress是管理外部HTTP/HTTPS流量访问集群内服务的API资源对象,提供负载均衡、SSL终止和基于名称的虚拟主机等功能。与Service不同,Ingress工作在应用层(HTTP),支持基于域名和路径的路由。部署Ingress需要两个核心组件:Ingress资源(定义路由规则的YAML)和Ingress控制器(实际执行规则的Pod)。

小刘运维 1125

从零开始的云原生之旅(十二):从 Service 到 Ingress——K8s 服务暴露完全指南

本文是一篇Kubernetes服务暴露指南,详细介绍了从基础Service到Ingress的完整演进路径。主要内容包括: 四种Service类型详解: ClusterIP(集群内部服务发现基础) NodePort(简单直接的外部访问方式) LoadBalancer(云环境标准入口) ExternalName(连接旧系统过渡方案) 关键问题解析:指出了Service在复杂场景下的局限性,如域名管理、路径路由、HTTPS统一等问题,引出了Ingress的必要性。 典型架构演进:展示了从单体应用→多服务→统一入口

2301_80027247的博客 1135

深入解析 Kubernetes Service(SVC)网络

在 Kubernetes(k8s)集群中,Pod 是最小的可部署单元,但 Pod 的生命周期是短暂的,IP 也是动态分配的。Kubernetes 中 Pod 可能会被频繁销毁和重建,每次重新创建时,其 IP 地址都会改变。例如,一个微服务架构的 Web 应用,Service 是 Kubernetes 网络的核心,理解其工作机制对于搭建可靠的微服务架构至关重要!资源,它充当一组 Pod 的稳定访问入口,使得集群内部或外部的访问更加高效和稳定。的 Pod IP 是动态变化的,访问,提供稳定的内部服务发现。

XMYX-0 1833

《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》

本文深入解析Kubernetes中Service与Ingress两大核心组件的工作原理与应用场景。Service作为4层负载均衡组件,提供5种类型(ClusterIP、Headless、NodePort等)解决Pod动态IP问题,实现集群内服务发现与稳定访问。Ingress作为7层反向代理,通过Ingress资源定义规则和Ingress Controller执行转发,有效管理多服务外部暴露问题。文章详细介绍了Ingress的三种部署方式(LoadBalancer、HostNetwork、NodePort)及

m0_56953101的博客 1571

# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)

Ingress是 Kubernetes 中专门用来管理集群外部流量如何访问集群内部服务的 API 资源(规则文件)。它工作在第七层(应用层,HTTP/HTTPS),能够提供比 Service 更智能、更灵活的路由能力。Ingress 规则是“全集群生效的逻辑规则”,它不依赖于具体的物理节点。无论流量从哪个节点进入,只要集群中的 Ingress Controller 正常运行,规则就会执行。你只需维护一份 Ingress 文件,就能为整个集群提供七层路由能力是一个七层负载均衡调度器。

weixin_46136019的博客 511

《Kubernetes》你需要掌握的 Service 和 Ingress,纯干货!

一、Service在 k8s 中,pod 是应用程序的载体,我们可以通过 pod的 IP 来访问我们的应用程序,但是我们已经清楚了 pod 是具有生命周期的,一旦 pod 出现问题,pod控制器将会将pod销毁进行重新创建。

2401_89285701的博客 715
上一篇: kubernetes(k8s) ingress及ingress docker-controller
下一篇: K8S 之 Headless 浅谈
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值