- Kuberntes权威指南
程序员的人生K
服务器kubernetes
一、目录二、Kubernetes入门三、Kubernetes核心原理四、Kubernetes开发指南五、Kubernetes运维指南六、Kubernetes高级案例进阶七、Kubernetes源码导读
- kuberntes安装
alkcf22626
java运维json
1、环境概述及组件版本1.1节点IP服务角色192.168.149.136master&node,etcd192.168.149.137master&node,etcd192.168.149.138master&node,etcd1.2组件组件版本说明2、系统初始化及证书创建2.1系统初始化关闭selinux,firewalld(三台服务器均操作)systemctlstopfirewalld.se
- Kuberntes DNS
zhixingheyi_tian
DNSkubernetes
查找服务端点#kubectlgetendpointsNAMEENDPOINTSAGEdocker-registry172.17.0.10:500019dkubernetes10.0.2.41:844319drouter10.0.2.41:1936,10.0.2.41:80,10.0.2.41:44319dsparkthrift-headless172.17.0.12:18887dWhenyouar
- [翻译]在生产环境使用Kuberntes一年后,我们总结了这些经验和教训
weixin_33861800
运维大数据数据库
2015年初,我们计划为开发团队搭建一套全新的部署平台,在此之前我们使用的是AmazonEC2。尽管AWS-basedsteup我们一直用得很好,但使用自定义脚本和工具自动化部署的设置,对于运维以外的团队来说不是很友好,特别是一些小团队——没有足够的资源来了解这些脚本和工具的细节。这其中的主要问题在于没有“部署单元(unit-of-deployment)”,该问题直接导致了开发与运维之间工作的断层
- kubernetes系列02-本地安装kubernetes、部署springboot服务
高级Java进阶之路
javakuberneteskubernetesspringbootdocker
本章我们在本地快速搭建一个kubernetes集群并且在上面部署一个springboot服务。kubernetes组件介绍kuberntes组件分为两部分,controlplane(控制面)和workernode(工作节点)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hExbekND-1639228159386)(https://bytejava.cn/asse
- 云计算时代容器安全综述-容器安全模型(上)
攀师傅
随着Kuberntes逐渐坐稳了容器编排平台的头把交易,容器化部署已经从Gartner技术风向报告上,变成实际运行在宿主机上的一个个进程。而支撑Kubernetes的容器化技术,或者说支持Docker的容器化概念,早就在多年前已经诞生,笔者相信大部分人都认可:由于Docker提供了对用户更加友好操作界面和客户端命令行工具,containers这个技术逐渐从墙角走到了聚光灯下,特别是工具的主要用户群
- kubernetes系列教程(一)初探kubernetes功能与组件
HappyLau谈云计算
1.kubernetes简介1.1kubernetes介绍Kubernetes是google开源的一套微服务,容器化的编排引擎,是google内部容器十多年实战沉淀的结晶,已战胜Swarm,Messo成为容器编排的行业标准。kuberntes内置有很多非常优秀的特性使开发者专注于业务本身,其包含的功能如下:Servicediscoveryandloadbalancing,服务发现和负载均衡,通过D
- 研发效能度量的正确姿势与落地实践(演讲PPT分享版)
ITFLY8
navicatpptgraphviz百度交互设计
作者简介张乐老师,专注于DevOps及研发效能提升领域的技术和实践,曾就职于百度、京东等多个国内一线互联网公司及惠普、埃森哲等世界五百强外企。作为DevOps资深实践者,长期坚持在企业一线探索和积累,同时持续在行业中传播、推广相关理念和经验,目前是DevOpsDays大会中国区核心组织者,TOP100全球软件案例研究峰会联合主席,TiD质量竞争力大会、GIAC互联网架构大会DevOps专题出品人及
- jenkins部署k8s
大A崛起
持续集成
一、jenkins搭建参考之前的文章:Jenkins搭建二、k8s集群搭建参考之前的文章:k8s集群搭建三、jenkins上配置凭证3.1、配置gitlab凭据3.2、配置kuberntes凭据在master节点cat$HOME/.kube/config四、创建pipeline创建pipeline过程略过,直接贴pipeline脚本#!/bin/sh-ilexdefgit_address="htt
- Kubernetes技术--k8s核心技术yaml资源编排
魔笛手7
运维系列kubernetes容器云原生yaml
(1).引入我们可以使用kubectl实现单行指令的操作,但是这样做的坏处是不复用,所以为了更好的实现对一系列资源的编排工作。kuberntes中使用一种叫做资源清单文件(yaml)来实现对资源管理和资源对象编排部署。(2).概述yaml是一种标记语言。为了强调这种语言以数据做为中心,而不是以标记语言为重点。yaml是一个可读性高,用来表达数据序列的格式。(3).yaml语法格式-1:使用空格做为
- 使用CodeRun部署阿里云Kubernetes
Hellwen
今天给大家介绍下我们的程序是如何部署到阿里云Kubernetes(托管版)的我们使用三种开发语言,分别是:js,python,golang.三种语言的部署有一些差别,但主要步骤都是一样的.我们今天先介绍下js(前端)的部署方式.核心的部署步骤如下:GitClone编译与Build镜像部署到Kubernetes,通过Helm或者Deployment配置Kubernetes阿里云的Kuberntes支
- DevOps专题
laizhiy
----------Docker----------Docker入门篇-概念Docker入门篇-创建虚拟机Docker入门篇-安装DockerCEDocker入门篇-搭建私服(注册表)Docker实战篇-常用命令Docker实战篇-快速开始Docker实战篇-详述DockerfileDocker实战篇-入门composeDocker高级篇-网络驱动Docker高级篇-数据管理Docker高级篇-s
- Service mesh 之 osm 小试
leeehao
OSM的全称为openservicemesh是由微软发起的开源项目,OSM定义为轻量可扩展皆在解决istio慢、卡、重的问题测试平台k3d(k3s)k9sarchk3d依赖于k3s是kuberntes的一个轻量级的发行版,同样还有kind等发行版。由于kind在mac环境下有各式各样的问题,作者便在linux环境下选择了k3d。k3d的安装与集群创建安装k3d在arch下安装非常方便https:/
- kubernetes系列02-本地安装kubernetes、部署springboot服务
高级Java开发
本章我们在本地快速搭建一个kubernetes集群并且在上面部署一个springboot服务。kubernetes组件介绍kuberntes组件分为两部分,controlplane(控制面)和workernode(工作节点)。controlplane从名字可以看出负责控制整个系统。Controlplane里面注意包含controllermanager,scheduler,apiserver和etc
- 手把手kubernetes本地化部署(含疑难杂症排查解析)
MCNU云原生
Kuberneteskubernetes云原生java
文章目录一、什么是Kubernetes?二、Kubernetes的基本概念PodDeploymentServiceNamespaceConfigMapSecret三、Kuberntes单机本地部署3.1、安装minikube命令行工具3.2、安装docker3.3、启动minikube3.4、使用Dashboard3.5、异常问题解决3.5.1、提示Docker失败3.5.2、dockerDNS配
- k8s 系列之 CoreDNS 解读
BIGmustang
k8s之资源发布kubernetesdocker容器
k8s系列之CoreDNSCoreDNS工作原理kuberntes中的pod基于service域名解析后,再负载均衡分发到service后端的各个pod服务中,如果没有DNS解析,则无法查到各个服务对应的service服务在Kubernetes中,服务发现有几种方式:基于环境变量的方式基于内部域名的方式从K8S1.11开始,K8S已经使用CoreDNS,替换KubeDNS来充当其DNS解析,DNS
- 【kubernetes/k8s概念】coredns 概念原理与使用
张忠琳
#kubernetesCNI网络
WHY?kuberntes中的pod基于service域名解析后,再负载均衡分发到service后端的各个pod服务中,如果没有DNS解析,则无法查到各个服务对应的service服务在Kubernetes中,服务发现有几种方式:基于环境变量的方式基于内部域名的方式WHAT?从K8S1.11开始,K8S已经使用CoreDNS,替换KubeDNS来充当其DNS解析DNS如何解析,依赖容器内resolv
- 区块链系统Docker&Kuberntes一键部署
趣链科技
联盟链区块链技术docker大数据容器区块链baas
前言在《一图读懂BaaS》中我们介绍了BaaS平台作为一种将区块链和云计算深度结合的新型服务平台,能帮助用户快速上手区块链业务。通过BaaS平台可快捷管控联盟链,确保链上业务稳定运行。因此,随着区块链的广泛应用,Baas服务的稳定性日趋关键,其中高可用部署就是重要环节。本文将从BaaS系统如何通过冗余+自动故障转移等机制,实现系统的高可用。如何度量系统高可用?在讨论系统高可用性之前,有必要先搞清楚
- 关于kuberntes证书过期的解决方案
最强滴菜鸟
dockerk8s
关于kuberntes证书过期的解决方案方案一确认一下所有证书的过期时间一定要先备份旧的家目录下的config文件重命名,拷贝新的admin.conf到家目录下重启etcd、scheduler、controller、apiserver方案二今天刚接收公司的k8s测试集群,就接到一个锅:证书过期了。心里奔腾了一万个马xxxxxx。话说活儿还得自己干呐方案一/etc/kubernetes/pki/ap
- 在kubernetes中使用nginx ingress实现灰度部署
nangonghen
kubernetesnginxkubernetes
概述1)kuberntes集群环境:v1.14.2。2)nginxingress版本:nginx-ingress-controller:0.25.0。3)nginxingress部署方式:daemonset,并直接使用宿主网络(即host模式),80端口。4)官方文档地址:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-con
- k8s 控制器:Daemonset 和 Job
笨小孩@GF 知行合一
学习笔记kubernetes容器云计算k8sJobLinux运维
DaemonSet概述DaemonSet控制器能够确保k8s集群所有的节点都运行一个相同的pod副本,当向k8s集群中增加node节点时,这个node节点也会自动创建一个pod副本,当node节点从集群移除,这些pod也会自动删除;删除Daemonset也会删除它们创建的podDaemonSet工作原理:如何管理Pod?daemonset的控制器会监听kuberntes的daemonset对象、p
- 推荐4款超好用本地Kubernetes部署工具
郑再鹏
Dockerkubernetes
如果你今天深思熟虑后,确认真的有需要于本地测试Kuberntes的需求,我们就可以来思考,对于一个开发者,我希望可以怎么使用这个本地的Kubernetes。探讨这个议题之前,我们要先来问一个问题是:我们本地开发者,真的需要一个Kuberntees吗?这个是必要的吗?我认为这个答案是非必要,并不是所有的本地开发者都需要有一个独立的Kubernetes集群来使用,但是如果有符合下列需求之一,就会需要创
- Ubuntu 18.04 LTS安装Kubernetes 1.11
weixin_34378767
2019独角兽企业重金招聘Python工程师标准>>>Ubuntu18.04+Kuberntes1.11.2+Istio1.0组合来了。完整安装说明,参考:https://linuxconfig.org/how-to-install-kubernetes-on-ubuntu-18-04-bionic-beaver-linux安装的其它细节问题解决:https://my.oschina.net/u/
- 【重识云原生】第六章容器6.3.6节——kubelet组件
江中散人
云原生专栏kubernetesdocker容器云原生kubelet
1kubeletKubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,其主要功能就是定时从某个地方获取节点上pod/container的期望状态(运行什么容器、运行的副本数量、网络或者存储如何配置等等),并调用对应的容器平台接口达到这个状态。比较经典的一张图:每个Node节点上都运行一个Kubelet服务进程,默认监听10250端口,接收并执行Maste
- Kubernetes关于CSR的引子
kubernetes
引子:今天一个小伙伴问我kuberntes集群中kubectlgetcsr怎么没有输出呢?我试了一下我集群内确实没有csr的。whatiscsr?为什么kubectlgetcsr一定要有输出呢?什么时候会有csr呢(这里说的是系统默认的,不包括自己创建的!)1.Kubernetes关于CSR1.什么是CSR?csr的全称是CertificateSigningRequest翻译过来就是证书签名请求。
- 轻松配置基于Agent的OneDev CI/CD集群
运维gitci-cd开发工具
介绍OneDev是一个开源的自建Git服务,自带工单看板和CI/CD,项目地址:https://github.com/theonedev/...在CI/CD任务需要消耗大量资源时,OneDev可以将其作为pod运行在Kuberntes集群中。然而Kubernetes集群自建较为麻烦,而使用云服务商的集群又较贵。基于此,OneDev从4.10版本开始提供基于Agent的CI/CD集群。Agent设计
- kubernetes里部署jenkins踩坑之路(Docker in Docker)
迷茫_小青年
这段时间一直在搞kuberntes的CI/CD。最简单的方法是在kubernetes的master上直接部署jenkins然后继承各种插件打包,部署。非常简单。但是,为了装逼用了docker嵌套技术也叫dockerindocker或是DinD。就是把jenkins部署在k8s里。jenkinsmaster构建时,启动pod运行代码克隆,项目构建,镜像构建等指令操作。构成完成以后删除pod。另外一个
- 共论研发创新,嘉为蓝鲸受邀出席TiD 2021质量竞争力大会
嘉为蓝鲸
蓝鲸动态产品分享自然语言处理python
9月14-15日,由中关村智联软件服务业质量创新联盟主办的TiD2021质量竞争力大会在北京成功举办。嘉为蓝鲸应邀出席,并在DevOps专题论坛进行了主题分享。本次大会以“数据智能驱动研发智能:构建研发数字化引擎”为主题,众多知名软件工程、系统工程专家、行业负责人与会出席,共同探讨利用数字化加速创新发展、高效协同、提升可靠性,推进各行业软件研发的智能化和高质量发展。探索数字化转型,共论研发创新未来
- Kuberntes中Sysctl中的配置(php-fpm并发只能300)
背景:kubernetes集群中部署应用,对应用进行压力测试。jmeter进行压力测试大概是每秒300个左右的请求(每分钟elasticsearch中采集的请求有18000个)。查看日志有nginx的errolog:但是我的cpu内存资源也都没有打满。通过搜索引擎搜索发现与下面博客的环境基本相似,php-fpm也是走的socket:参见:http://www.bubuko.com/infodeta
- 手动构筑单机版K8s(五)创建单节点etcd
贪得_3440
5.创建单节点etcdkuberntes系统使用etcd存储所有数据,本文介绍单节点etcd部署方式TLS认证文件需要为etcd集群创建加密通信的TLS证书,这里复用以前创建的kubernetes证书确认以下证书是否存在$ls/etc/kubernetes/sslca.pemkubernetes-key.pemkubernetes.pem下载etcd二进制文件wgethttps://github.
- 基本数据类型和引用类型的初始值
3213213333332132
java基础
package com.array;
/**
* @Description 测试初始值
* @author FuJianyong
* 2015-1-22上午10:31:53
*/
public class ArrayTest {
ArrayTest at;
String str;
byte bt;
short s;
int i;
long
- 摘抄笔记--《编写高质量代码:改善Java程序的151个建议》
白糖_
高质量代码
记得3年前刚到公司,同桌同事见我无事可做就借我看《编写高质量代码:改善Java程序的151个建议》这本书,当时看了几页没上心就没研究了。到上个月在公司偶然看到,于是乎又找来看看,我的天,真是非常多的干货,对于我这种静不下心的人真是帮助莫大呀。
看完整本书,也记了不少笔记
- 【备忘】Django 常用命令及最佳实践
dongwei_6688
django
注意:本文基于 Django 1.8.2 版本
生成数据库迁移脚本(python 脚本)
python manage.py makemigrations polls
说明:polls 是你的应用名字,运行该命令时需要根据你的应用名字进行调整
查看该次迁移需要执行的 SQL 语句(只查看语句,并不应用到数据库上):
python manage.p
- 阶乘算法之一N! 末尾有多少个零
周凡杨
java算法阶乘面试效率
&n
- spring注入servlet
g21121
Spring注入
传统的配置方法是无法将bean或属性直接注入到servlet中的,配置代理servlet亦比较麻烦,这里其实有比较简单的方法,其实就是在servlet的init()方法中加入要注入的内容:
ServletContext application = getServletContext();
WebApplicationContext wac = WebApplicationContextUtil
- Jenkins 命令行操作说明文档
510888780
centos
假设Jenkins的URL为http://22.11.140.38:9080/jenkins/
基本的格式为
java
基本的格式为
java -jar jenkins-cli.jar [-s JENKINS_URL] command [options][args]
下面具体介绍各个命令的作用及基本使用方法
1. &nb
- UnicodeBlock检测中文用法
布衣凌宇
UnicodeBlock
/** * 判断输入的是汉字 */ public static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
- java下实现调用oracle的存储过程和函数
aijuans
javaorale
1.创建表:STOCK_PRICES
2.插入测试数据:
3.建立一个返回游标:
PKG_PUB_UTILS
4.创建和存储过程:P_GET_PRICE
5.创建函数:
6.JAVA调用存储过程返回结果集
JDBCoracle10G_INVO
- Velocity Toolbox
antlove
模板toolboxvelocity
velocity.VelocityUtil
package velocity;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.c
- JAVA正则表达式匹配基础
百合不是茶
java正则表达式的匹配
正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作
正则表达式的用途;
字符串的匹配
字符串的分割
字符串的查找
字符串的替换
正则表达式的验证语法
[a] //[]表示这个字符只出现一次 ,[a] 表示a只出现一
- 是否使用EL表达式的配置
bijian1013
jspweb.xmlELEasyTemplate
今天在开发过程中发现一个细节问题,由于前端采用EasyTemplate模板方法实现数据展示,但老是不能正常显示出来。后来发现竟是EL将我的EasyTemplate的${...}解释执行了,导致我的模板不能正常展示后台数据。
网
- 精通Oracle10编程SQL(1-3)PLSQL基础
bijian1013
oracle数据库plsql
--只包含执行部分的PL/SQL块
--set serveroutput off
begin
dbms_output.put_line('Hello,everyone!');
end;
select * from emp;
--包含定义部分和执行部分的PL/SQL块
declare
v_ename varchar2(5);
begin
select
- 【Nginx三】Nginx作为反向代理服务器
bit1129
nginx
Nginx一个常用的功能是作为代理服务器。代理服务器通常完成如下的功能:
接受客户端请求
将请求转发给被代理的服务器
从被代理的服务器获得响应结果
把响应结果返回给客户端
实例
本文把Nginx配置成一个简单的代理服务器
对于静态的html和图片,直接从Nginx获取
对于动态的页面,例如JSP或者Servlet,Nginx则将请求转发给Res
- Plugin execution not covered by lifecycle configuration: org.apache.maven.plugin
blackproof
maven报错
转:http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin
maven报错:
Plugin execution not covered by lifecycle configuration:
- 发布docker程序到marathon
ronin47
docker 发布应用
1 发布docker程序到marathon 1.1 搭建私有docker registry 1.1.1 安装docker regisry
docker pull docker-registry
docker run -t -p 5000:5000 docker-registry
下载docker镜像并发布到私有registry
docker pull consol/tomcat-8.0
- java-57-用两个栈实现队列&&用两个队列实现一个栈
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/*
* Q 57 用两个栈实现队列
*/
public class QueueImplementByTwoStacks {
private Stack<Integer> stack1;
pr
- Nginx配置性能优化
cfyme
nginx
转载地址:http://blog.csdn.net/xifeijian/article/details/20956605
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必
- [JAVA图形图像]JAVA体系需要稳扎稳打,逐步推进图像图形处理技术
comsci
java
对图形图像进行精确处理,需要大量的数学工具,即使是从底层硬件模拟层开始设计,也离不开大量的数学工具包,因为我认为,JAVA语言体系在图形图像处理模块上面的研发工作,需要从开发一些基础的,类似实时数学函数构造器和解析器的软件包入手,而不是急于利用第三方代码工具来实现一个不严格的图形图像处理软件......
&nb
- MonkeyRunner的使用
dai_lm
androidMonkeyRunner
要使用MonkeyRunner,就要学习使用Python,哎
先抄一段官方doc里的代码
作用是启动一个程序(应该是启动程序默认的Activity),然后按MENU键,并截屏
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRun
- Hadoop-- 海量文件的分布式计算处理方案
datamachine
mapreducehadoop分布式计算
csdn的一个关于hadoop的分布式处理方案,存档。
原帖:http://blog.csdn.net/calvinxiu/article/details/1506112。
Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同ja
- 以資料庫驗證登入
dcj3sjt126com
yii
以資料庫驗證登入
由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼: public function authenticate() { $users=array( &nbs
- github做webhooks:[2]php版本自动触发更新
dcj3sjt126com
githubgitwebhooks
上次已经说过了如何在github控制面板做查看url的返回信息了。这次就到了直接贴钩子代码的时候了。
工具/原料
git
github
方法/步骤
在github的setting里面的webhooks里把我们的url地址填进去。
钩子更新的代码如下: error_reportin
- Eos开发常用表达式
蕃薯耀
Eos开发Eos入门Eos开发常用表达式
Eos开发常用表达式
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2014年8月18日 15:03:35 星期一
&
- SpringSecurity3.X--SpEL 表达式
hanqunfeng
SpringSecurity
使用 Spring 表达式语言配置访问控制,要实现这一功能的直接方式是在<http>配置元素上添加 use-expressions 属性:
<http auto-config="true" use-expressions="true">
这样就会在投票器中自动增加一个投票器:org.springframework
- Redis vs Memcache
IXHONG
redis
1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3. Redis支持数据的备份,即master-slave模式的数据备份。
4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Red
- Python - 装饰器使用过程中的误区解读
kvhur
JavaScriptjqueryhtml5css
大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。
原文链接:http://www.gbtags.com/gb/share/5563.htm
Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:
@function_wrapper
de
- 架构师之mybatis-----update 带case when 针对多种情况更新
nannan408
case when
1.前言.
如题.
2. 代码.
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="list" index=&
- Algorithm算法视频教程
栏目记者
Algorithm算法
课程:Algorithm算法视频教程
百度网盘下载地址: http://pan.baidu.com/s/1qWFjjQW 密码: 2mji
程序写的好不好,还得看算法屌不屌!Algorithm算法博大精深。
一、课程内容:
课时1、算法的基本概念 + Sequential search
课时2、Binary search
课时3、Hash table
课时4、Algor
- C语言算法之冒泡排序
qiufeihu
c算法
任意输入10个数字由小到大进行排序。
代码:
#include <stdio.h>
int main()
{
int i,j,t,a[11]; /*定义变量及数组为基本类型*/
for(i = 1;i < 11;i++){
scanf("%d",&a[i]); /*从键盘中输入10个数*/
}
for
- JSP异常处理
wyzuomumu
Webjsp
1.在可能发生异常的网页中通过指令将HTTP请求转发给另一个专门处理异常的网页中:
<%@ page errorPage="errors.jsp"%>
2.在处理异常的网页中做如下声明:
errors.jsp:
<%@ page isErrorPage="true"%>,这样设置完后就可以在网页中直接访问exc