[ 更换 ]
热门城市
北京上海广州深圳成都杭州南京武汉天津西安重庆青岛沈阳长沙大连厦门无锡福州济南宁波昆明苏州郑州长春合肥南昌哈尔滨常州烟台南宁温州石家庄太原珠海南通扬州贵阳东莞徐州大庆佛山威海洛阳淮安呼和浩特镇江潍坊桂林中山临沂咸阳包头嘉兴惠州泉州三亚赣州九江金华泰安榆林许昌新乡舟山慈溪南阳聊城海口东营淄博漳州保定沧州丹东宜兴绍兴唐山湖州揭阳江阴营口衡阳郴州鄂尔多斯泰州义乌汕头宜昌大同鞍山湘潭盐城马鞍山襄樊长治日照常熟安庆吉林乌鲁木齐兰州秦皇岛肇庆西宁介休滨州台州廊坊邢台株洲德阳绵阳双流平顶山龙岩银川芜湖晋江连云港张家港锦州岳阳长沙县济宁邯郸江门齐齐哈尔昆山柳州绍兴县运城齐河衢州太仓张家口湛江眉山常德盘锦枣庄资阳宜宾赤峰余姚清远蚌埠宁德德州宝鸡牡丹江阜阳莆田诸暨黄石吉安延安拉萨海宁通辽黄山长乐安阳增城桐乡上虞辽阳遵义韶关泸州南平滁州温岭南充景德镇抚顺乌海荆门阳江曲靖邵阳宿迁荆州焦作丹阳丽水延吉茂名梅州渭南葫芦岛娄底滕州上饶富阳内江三明淮南孝感溧阳乐山临汾攀枝花阳泉长葛汉中四平六盘水安顺新余晋城自贡三门峡本溪防城港铁岭随州广安广元天水遂宁萍乡西双版纳绥化鹤壁湘西松原阜新酒泉张家界黔西南保山昭通河池来宾玉溪梧州鹰潭钦州云浮佳木斯克拉玛依呼伦贝尔贺州通化朝阳百色毕节贵港丽江安康德宏朔州伊犁文山楚雄嘉峪关凉山雅安西藏四川广东河北山西辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南海南贵州云南陕西甘肃青海台湾内蒙古广西宁夏香港澳门
培训资讯网 - 为兴趣爱好者提供专业的职业培训资讯知识
当前位置: 首页 >> 培训 >> istio 1.3.0 安装测试

istio 1.3.0 安装测试

测试

1. 简介

istio 目前最新版本为1.3.0,支持helm、ansiabled的安装方式,推荐通过Helm安装,可以支持很多精细的配置。

本文演示了helm3和istio 1.3的安装过程。

2、下载helm

helm 3相比helm 2.14.3变化还是比较大,跟istio的兼容性好像还有问题,推荐安装helm 2.14.3,后面的实验都是用2.14.3

(1)安装helm3

helm 3实现了绿色安装,下载解压就可以直接运行helm命令。

mkdir -p ~/helm3
cd ~/helm3
wget https://get.helm.sh/helm-v3.0.0-beta.2-linux-amd64.tar.gz
tar -zxvf helm-v3.0.0-beta.2-linux-amd64.tar.gz
cp helm /usr/local/bin/helm3

(2)安装helm2.14.3

mkdir -p ~/helm
cd ~/helm
wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
tar -zxvf helm-v2.14.3-linux-amd64.tar.gz
cd linux-amd64
cp helm /usr/local/bin
helm init --service-account tiller --skip-refresh --tiller-image junolu/tiller:v2.14.3
//检查是否安装成功
helm version

3、配置helm charts的加速仓库

添加微软的chart仓库,这个仓库与官网的charts仓库更新比较同步

helm repo add azure http://mirror.azure.cn/kubernetes/charts/
helm repo update
helm search mysql //测试helm charts repo是否正常访问

4.下载istio

从官网下载istio1.3.0

mkdir -p /root/istio
cd /root/istio
wget https://github.com/istio/istio/releases/download/1.3.0/istio-1.3.0-linux.tar.gz
tar -xvf istio-1.3.0-linux.tar.gz

5. 配置helm的istio仓库

helm repo add istio.io https://storage.googleapis.com/istio-release/releases/1.3.0/charts/

6.安装istio

使用默认配置安装istio

(1).创建namespace,用于存放所有istio组件

kubectl create namespace istio-system

(2).创建crds自定义资源

helm template install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f -

或则

helm install istio.io/istio-init --name istio-init --namespace=istio-system

(3).验证crds是否创建成功,一共23个

kubectl get crds | grep "istio.io" | wc -l

(4).安装istio组件

为了简化安装,我们使用values-istio-demo-auth.yaml这个配置文件,可以默认配置好istio的常用组组件

helm install install/kubernetes/helm/istio --name istio --namespace istio-system --values install/kubernetes/helm/istio/values-istio-demo-auth.yaml

或则

helm install istio.io/istio --name istio --namespace=istio-system --set gateways.istio-ingressgateway.type=NodePort --set grafana.enabled=true --set kiali.enabled=true --set tracing.enabled=true 

(5).修改ingress-gateway的模式

系统安装时,默认的ingress-gateway模式是load balance,本例中我们安装在自己的kubernetes中,所以,不能使用load balance,修改为 Nodeport

helm upgrade istio install/kubernetes/helm/istio --set gateways.istio-ingressgateway.type=NodePort
或
kubectl patch service istio-ingressgateway -n istio-system -p "{"spec":{"type":"NodePort"}}"

7 测试httpbin

(1).安装httpbin

//创建httpbin pods和svcs
kubectl apply -f samples/httpbin/httpbin.yaml --namespace test
kubectl apply -f samples/httpbin/httpbin-gateway.yaml --namespace test
//修改gateway如下
cp httpbin-gateway.yaml httpbin-gateway1.yaml
[root@centos75 httpbin]# cat httpbin-gateway1.yaml
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
 name: httpbin-gateway
spec:
 selector:
 istio: ingressgateway
 servers:
 - port:
 number: 80
 name: http
 protocol: HTTP
 hosts:
 - "httpbin.example.com"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
 name: httpbin
spec:
 hosts:
 - "httpbin.example.com"
 gateways:
 - httpbin-gateway
 http:
 - match:
 - uri:
 prefix: /status
 - uri:
 prefix: /delay
 route:
 - destination:
 port:
 number: 8000
 host: httpbin
 - route:
 - destination:
 host: httpbin
 port:
 number: 8000
[root@centos75 httpbin]#
//取得ingress的地址和端口信息
export INGRESS_HOST=$(kubectl -n istio-system get po -l istio=ingressgateway -o go-template="{{range .items}}{{.status.hostIP}}{{end}}")
export INGRESS_PORT=$(kubectl -n istio-system get svc istio-ingressgateway -o go-template="{{range .spec.ports}}{{if eq .name "http2"}}{{.nodePort}}{{end}}{{end}}")
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
//测试是否match 路由生效
curl -I -HHost:httpbin.example.com http://$INGRESS_HOST:$INGRESS_PORT/status/200

(2).解析httpbin的流量路径

istio 1.3.0 安装测试

(a) kubectl describe gateway httpbin-gateway

[root@centos75 ~]# kt describe gw httpbin-gateway
Name: httpbin-gateway
Namespace: test
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
 {"apiVersion":"networking.istio.io/v1alpha3","kind":"Gateway","metadata":{"annotations":{},"name":"httpbin-gateway","namespace":"test"},"s...
API Version: networking.istio.io/v1alpha3
Kind: Gateway
Metadata:
 Creation Timestamp: 2019-09-13T17:04:46Z
 Generation: 1
 Resource Version: 2771114
 Self Link: /apis/networking.istio.io/v1alpha3/namespaces/test/gateways/httpbin-gateway
 UID: af318455-9246-463e-9d97-736004458250
Spec:
 Selector:
 Istio: ingressgateway
 Servers:
 Hosts:
 httpbin.example.com --(1)需要同virtualservice的hosts匹配
 Port:
 Name: http
 Number: 80
 Protocol: HTTP
Events: <none>

(b) kubectl describe virtualservice httpbin

[root@centos75 ~]# kt describe vs httpbin
Name: httpbin
Namespace: test
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
 {"apiVersion":"networking.istio.io/v1alpha3","kind":"VirtualService","metadata":{"annotations":{},"name":"httpbin","namespace":"test"},"sp...
API Version: networking.istio.io/v1alpha3
Kind: VirtualService
Metadata:
 Creation Timestamp: 2019-09-13T17:14:48Z
 Generation: 1
 Resource Version: 2772158
 Self Link: /apis/networking.istio.io/v1alpha3/namespaces/test/virtualservices/httpbin
 UID: e72006ab-45ee-4e63-90a2-6fade656ea60
Spec:
 Gateways:
 httpbin-gateway --(2)指定本virtualservice定义的流量规则适用的gateway
 Hosts:
 httpbin.example.com --(3)同gateway定义里的hosts匹配
 Http:
 Match:
 Uri:
 Prefix: /status
 Uri:
 Prefix: /delay
 Route:
 Destination:
 Host: httpbin --(4)指定后端接收流量的service或ServiceEntry的名字
 Port:
 Number: 8000 --(5)后端Service或ServiceEntry的接收端口
Events: <none>

(c) kubectl describe service httpbin

[root@centos75 ~]# kt describe svc httpbin
Name: httpbin
Namespace: test
Labels: app=httpbin
Annotations: kubectl.kubernetes.io/last-applied-configuration:
 {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"httpbin"},"name":"httpbin","namespace":"test"},"spec":{"...
Selector: app=httpbin
Type: ClusterIP
IP: 172.18.145.175
Port: http 8000/TCP --(6)后端service的对外端口
TargetPort: 80/TCP --(7)后端pod的访问端口
Endpoints: 192.168.148.94:80
Session Affinity: None
Events: <none>

(e) kubectl describe pod httpbin-7d9d5b55b9-52mxb

[root@centos75 ~]# kt describe po httpbin-7d9d5b55b9-52mxb
Name: httpbin-7d9d5b55b9-52mxb
Namespace: test
Priority: 0
Node: centos75/10.0.135.30
Start Time: Sat, 14 Sep 2019 00:26:47 +0800
Labels: app=httpbin
 pod-template-hash=7d9d5b55b9
 version=v1
Annotations: cni.projectcalico.org/podIP: 192.168.148.94/32
 sidecar.istio.io/status:
 {"version":"610f2b5742375d30d7f484e296fd022086a4c611b5a6b136bcf0758767fefecc","initContainers":["istio-init"],"containers":["istio-proxy"]...
Status: Running
IP: 192.168.148.94
Controlled By: ReplicaSet/httpbin-7d9d5b55b9
Init Containers:
 istio-init:
 Container ID: docker://42c5b3d84755502fe5048477585096ea35a9b33ee88bacde3c5b2241bd9935c9
 Image: docker.io/istio/proxy_init:1.3.0
 Image ID: docker-pullable://istio/proxy_init@sha256:aede2a1e5e810e5c0515261320d007ad192a90a6982cf6be8442cf1671475b8a
 Port: <none>
 Host Port: <none>
 Args:
 -p
 15001
 -z
 15006
 -u
 1337
 -m
 REDIRECT
 -i
 *
 -x
 -b
 *
 -d
 15020
 State: Terminated
 Reason: Completed
 Exit Code: 0
 Started: Sat, 14 Sep 2019 00:26:48 +0800
 Finished: Sat, 14 Sep 2019 00:26:49 +0800
 Ready: True
 Restart Count: 0
 Limits:
 cpu: 100m
 memory: 50Mi
 Requests:
 cpu: 10m
 memory: 10Mi
 Environment: <none>
 Mounts:
 /var/run/secrets/kubernetes.io/serviceaccount from default-token-r7slk (ro)
Containers:
 httpbin:
 Container ID: docker://50d746242eb3b1b87c1e40a3059890b6a3c2482334975452e50047010c2cb2c9
 Image: docker.io/kennethreitz/httpbin
 Image ID: docker-pullable://kennethreitz/httpbin@sha256:599fe5e5073102dbb0ee3dbb65f049dab44fa9fc251f6835c9990f8fb196a72b
 Port: 80/TCP --(8)pod的访问端口定义
 Host Port: 0/TCP
 State: Running
 Started: Sat, 14 Sep 2019 00:35:28 +0800
 Ready: True
 Restart Count: 0
 Environment: <none>
 Mounts:
 /var/run/secrets/kubernetes.io/serviceaccount from default-token-r7slk (ro)
 istio-proxy:
 Container ID: docker://84c019f39b6215950acb79e86593cb683d9344929ceabf7d07014586af01f782
 Image: docker.io/istio/proxyv2:1.3.0
 Image ID: docker-pullable://istio/proxyv2@sha256:f3f68f9984dc2deb748426788ace84b777589a40025085956eb880c9c3c1c056
 Port: 15090/TCP
 Host Port: 0/TCP
 Args:
 proxy
 sidecar
 --domain
 $(POD_NAMESPACE).svc.cluster.local
 --configPath
 /etc/istio/proxy
 --binaryPath
 /usr/local/bin/envoy
 --serviceCluster
 httpbin.$(POD_NAMESPACE)
 --drainDuration
 45s
 --parentShutdownDuration
 1m0s
 --discoveryAddress
 istio-pilot.istio-system:15010
 --zipkinAddress
 zipkin.istio-system:9411
 --dnsRefreshRate
 300s
 --connectTimeout
 10s
 --proxyAdminPort
 15000
 --concurrency
 2
 --controlPlaneAuthPolicy
 NONE
 --statusPort
 15020
 --applicationPorts
 80
 State: Running
 Started: Sat, 14 Sep 2019 00:35:29 +0800
 Ready: True
 Restart Count: 0
 Limits:
 cpu: 2
 memory: 1Gi
 Requests:
 cpu: 100m
 memory: 128Mi
 Readiness: http-get http://:15020/healthz/ready delay=1s timeout=1s period=2s #success=1 #failure=30
 Environment:
 POD_NAME: httpbin-7d9d5b55b9-52mxb (v1:metadata.name)
 ISTIO_META_POD_PORTS: [
 {"containerPort":80,"protocol":"TCP"}
 ]
 ISTIO_META_CLUSTER_ID: Kubernetes
 POD_NAMESPACE: test (v1:metadata.namespace)
 INSTANCE_IP: (v1:status.podIP)
 SERVICE_ACCOUNT: (v1:spec.serviceAccountName)
 ISTIO_META_POD_NAME: httpbin-7d9d5b55b9-52mxb (v1:metadata.name)
 ISTIO_META_CONFIG_NAMESPACE: test (v1:metadata.namespace)
 SDS_ENABLED: false
 ISTIO_META_INTERCEPTION_MODE: REDIRECT
 ISTIO_META_INCLUDE_INBOUND_PORTS: 80
 ISTIO_METAJSON_LABELS: {"app":"httpbin","pod-template-hash":"7d9d5b55b9","version":"v1"}
 IST

相关内容

怎么学?如何干?西藏7市(地)委书记在西藏日报发表文章

启航新征程 开创新局面为全面建设社会主义现代化新拉萨努力奋斗自治区党委常委、拉萨市委书记 普布顿珠党的二十大大笔擘画坚持以中国式现代化全面推进中华民族伟大复兴的宏伟蓝图,区党委十届三次全会全面铺开建设美丽幸福西藏、共圆伟大复兴梦想的壮阔实践···

2023年全区智慧旅游专业人才培训班圆满结业

6月2日,自治区旅游发展厅主办的全区智慧旅游专业人才培训班在拉萨圆满结业。培训共历时三天,累计完成全区旅游行政管理部门工作人员及涉旅企业专业技术人员培训100人。本次培训是区旅发厅深入推进学习贯彻习近平新时代中国特色社会主义思想主题教育重要···

徐汇萨迦共同举办大美西藏首届口腔学习班

随着现代医学的发展,口腔健康越来越受到人们的关注,为提高西藏地区口腔技术水平和服务质量,近日,徐汇区牙病防治所和萨迦县中心医院远程连线共同举办首届口腔学习班开班仪式。徐汇区卫生健康委副主任胡强,上海援藏干部、萨迦县委常务副书记、常务副县长沈···

自觉抵制“一对一”“一对多”等学科类培训!哈尔滨中小学生暑期预警来了

17日,记者从哈尔滨市各区教育局获悉,2023年暑假将至,南岗区、道里区、香坊区教育局向家长发出预警,自觉抵制违规培训,各区义务教育阶段学科类培训机构已经全部注销,暑假期间以任何形式开展的学科类培训均属于违规培训。家长要自觉抵制任何机构或个···

哈尔滨市道里区企投局举办“招商大讲堂”专题培训

黑龙江网讯(记者 王惠婷)10月24日,哈尔滨市道里区企投局组织开展“招商大讲堂”专题培训班,全区各招商专班负责同志及业务骨干参加培训。本次培训从实际需求出发,紧紧围绕当前招商工作中的热点、难点,对“什么是招商引资”“道里区的产业结构和主导···

团黑龙江省委举办全省青年文明号青年岗位能手学习宣传贯彻党的二十大精神培训交流会

中国青年报客户端讯(李海涛)为深入学习贯彻党的二十大精神,充分发挥青年文明号、青年岗位能手示范引领作用,在全省职业青年中掀起学习党的二十大精神热潮,11月22日,团黑龙江省委举办全省青年文明号青年岗位能手学习宣传贯彻党的二十大精神培训交流会···

辽宁葫芦岛举办外贸政策培训会推动外贸保稳增量

辽宁省葫芦岛市外贸政策培训会4月3日举办。 辽宁省贸促会供图中新网葫芦岛4月3日电 (李晛)辽宁省葫芦岛市外贸政策培训会4月3日举办。本次活动由辽宁省贸促会支持、葫芦岛市商务局主办,葫芦岛市贸促会、葫芦岛海关、中国出口信用保险辽宁分公司和辽···

山西运城:严查无证校外培训机构 查封9家警告2家

新华社太原8月5日电(记者王飞航)记者从山西省运城市政府了解到,运城市教育局近日联合市公安局等多家单位,对中心城区无证校外培训机构进行了一次突击检查,共检查了13家校外培训机构,查封9家,警告2家,发放整改通知书4份。今年7月,运城市教育局···

山西开展培训筑牢森林“防火墙”

山西新闻网3月30日讯(记者 卢奕如)今日,记者从山西省应急管理厅获悉,全省举办森林草原防灭火业务培训,邀请专家以视频会议形式,围绕森林扑火指挥实操、森林草原火灾防控经验做法、火灾现场各级各类指挥员具体操作中遇到的问题等内容进行授课。培训内···

校外培训机构治理工作取得进展 山西停办近1300所

资料图:小学生排队等待进入校园。中新社记者 刘文华 摄中新网5月11日电 据教育部网站消息,按照校外培训机构专项治理工作整体安排,教育部、民政部、国家市场监管总局启动了校外培训机构治理专项督查工作。5月9日至10日,督查组率先在北京市开展华···

山西综改区举办省技术创新中心申报培训

  8月18日,山西综改区科技金融部举办2023年度省技术创新中心申报培训会,来自区内企业、科研院所及有关单位代表160余人参加了培训。  山西省技术创新中心是以产业前沿引领技术和关键共性技术研发为核心的产业技术创新平台,承担着为区域和产业···

山西汾阳医院开展健康教育与控烟知识培训

来源:【吕梁日报-吕梁新闻网】本报讯 (记者 刘少伟) 5月18日,在“世界无烟日”到来之际,山西汾阳医院组织开展健康教育与控烟知识培训。近年来,山西汾阳医院全面落实健康中国战略,根据国家卫健委《关于2011年起全国医疗卫生系统全面禁烟的决···

山西省文物局年度田野考古技术培训班开班

10月10日,山西省文物局在运城闻喜上郭城址、邱家庄墓群举办2023年度田野考古技术培训班开班仪式。该次培训为期三个月,通过理论和实践两部分教学,旨在推进山西考古工作高质量发展,提升考古业务人员专业技术水平。本次培训由山西省考古研究院和山西···

最低每课时9元!全省学科类校外培训课时长和收费标准出台

近日,山西省发改委、省教育厅下发《关于中小学学科类校外培训收费标准及有关事项的通知》,明确全省中小学学科类校外培训收费标准,从12月17日起执行。《通知》对全省线上线下学科类校外培训基准收费标准和浮动幅度制定了科学标准。其中,义务教育阶段线···

山西天镇 阳光职业培训学校培养乡村“新农人”乡村振兴添动能

(记者 贺文生) 山西天镇县阳光职业培训学校紧紧围绕乡村振兴战略,按照“政府引导、农民自愿、立足产业、突出重点”的原则,创新高素质农民技能培训方式方法,采取以“授人以渔”的方式,让人才振兴成为助推农业农村现代化的内生动力,以高素质农民引领现···

山西:建立全过程 全链条 无缝隙安全培训制度

黄河新闻网讯(记者杨江涛)日前,山西省应急管理厅下发了《山西省安全培训管理暂行办法》(以下简称《办法》)。我省将进一步抓好安全生产这个基本盘、基本面,推动全省安全培训工作制度化、规范化、科学化,促进安全培训工作高质量发展。山西省应急管理厅厅···

山西:艺考培训机构纳入全国监管平台管理

央广网太原10月6日消息(记者郎麒) 日前,山西省教育厅、省发改委、省公安厅等部门联合制定《加强面向高中阶段学生艺考培训规范管理工作方案》,针对艺考培训的突出特点和实际情况,全面规范艺考培训行为,将艺考培训机构统一纳入全国校外教育培训监管与···

太平财险阳泉中支开展消防安全教育和有限空间作业培训

为强化员工安全意识,进一步提升员工消防和有限空间突发事件应急处理能力,9月14日,太平财险阳泉中支邀请北京市卫民安消防教育咨询中心山西分中心讲师向全体员工开展了一次消防安全教育和有限空间作业课程培训。按照防消结合、预防为主的原则,本次讲座通···

山西省数字化转型贯标试点工作宣贯培训会在太原举行

  10月20日消息,山西省数字化转型贯标试点工作宣贯培训会在太原举行。省工信厅介绍,作为国家数字化转型贯标试点省份,试点启动后将引导企业加快数字化转型,助力制造业高端化、智能化、绿色化发展。  今年,工信部启动数字化转型贯标试点工作,我省···

山西马兰花创业培训讲师大赛收官 太原市获多个奖项

山西新闻网8月31日讯(记者 冯耿姝)8月29日,山西省第四届马兰花创业培训讲师大赛圆满收官,太原市代表队在比赛中分获多个二、三等奖和优秀奖。本届大赛以“启迪创新思维·激发创业梦想”为主题,全省共有56名教师晋级复赛,其中,太原市有7名选手···