Istio-0.8.0在Minikube环境中快速启动Bookinfo示例
Istio-0.8.0在Minikube环境中快速启动Bookinfo示例
之前发表了从零开始应用Istio--入门示例,使用的istio版本比较低,在0.8.0版本下发现很多命令不一样了,所以总结一下,重新跑一下Bookinfo.
一. 安装Minikube环境
使用Minikube的本地实验环境, 系统为centos7.0, 国内环境安装可以参考https://yq.aliyun.com/articles/221687
安装VirtualBox
VirtualBox
安装kubectl
可参考官网提供的安装说明,Install kubectl binary via curl
通过命令安装:
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
如果安装失败,或者无法访问可以直接下载
https://storage.googleapis.com/kubernetes-release/release/v1.11.1/bin/linux/amd64/kubectl
然后执行
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
安装Minikube
参考Minikube - Kubernetes本地实验环境 使用阿里提供的Minikube版本, 我这里使用Kubernetes 1.10 release的版本
curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.28.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
启动
minikube start \--registry-mirror=https://registry.docker-cn.com \--extra-config=controller-manager.cluster-signing-cert-file="/var/lib/localkube/certs/ca.crt" \--extra-config=controller-manager.cluster-signing-key-file="/var/lib/localkube/certs/ca.key" \--extra-config=apiserver.admission-control="NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" \--kubernetes-version=v1.10.0
二. 安装istio
可以参考官网Quick Start
获取Istio release , 我本地使用的为0.8.0版本
$ curl -L https://git.io/getLatestIstio | sh -
或者在GitHub下载所需版本
进入istio目录
cd istio-0.8.0
添加istioctl 到PATH
export PATH=$PWD/bin:$PATH
安装, 这里为了方便安装了不带TLS的版本
$ kubectl apply -f install/kubernetes/istio-demo.yaml
查看是否安装正常,看istio-pilot
, istio-ingressgateway
, istio-policy
, istio-telemetry
, prometheus
, 以及可选的istio-sidecar-injector
服务是否部署
kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-citadel ClusterIP 10.110.18.88 <none> 8060/TCP,9093/TCP 16h
istio-egressgateway ClusterIP 10.105.97.56 <none> 80/TCP,443/TCP 16h
istio-ingressgateway LoadBalancer 10.109.76.80 <pending> 80:31380/TCP,443:31390/TCP,31400:31400/TCP 16h
istio-pilot ClusterIP 10.108.201.57 <none> 15003/TCP,15005/TCP,15007/TCP,15010/TCP,15011/TCP,8080/TCP,9093/TCP 16h
istio-policy ClusterIP 10.100.249.185 <none> 9091/TCP,15004/TCP,9093/TCP 16h
istio-sidecar-injector ClusterIP 10.110.68.171 <none> 443/TCP 16h
istio-statsd-prom-bridge ClusterIP 10.100.113.133 <none> 9102/TCP,9125/UDP 16h
istio-telemetry ClusterIP 10.109.5.24 <none> 9091/TCP,15004/TCP,9093/TCP,42422/TCP 16h
prometheus ClusterIP 10.99.110.28 <none> 9090/TCP
查看pods
kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-citadel-dcb7955f6-vdcjk 1/1 Running 0 11h
istio-egressgateway-56b7758b44-l5fm5 1/1 Running 0 11h
istio-ingressgateway-56cfddbd5b-xbdcx 1/1 Running 0 11h
istio-pilot-cbd6bfd97-wgw9b 2/2 Running 0 11h
istio-policy-699fbb45cf-bc44r 2/2 Running 0 11h
istio-statsd-prom-bridge-949999c4c-nws5j 1/1 Running 0 11h
istio-telemetry-55b675d8c-kfvvj 2/2 Running 0 11h
prometheus-86cb6dd77c-5j48h 1/1 Running 0 11h
这样istio就安装完成了
注:如果没有安装Istio-sidecar-injector, 那么在部署应用时需要手动的注入Envoy,命令如下:kubectl create -f <(istioctl kube-inject -f <your-app-spec>.yaml)
(*)卸载
如果实验完成后不在需要Istio
环境可以使用如下命令卸载Istio
$ kubectl delete -f install/kubernetes/istio-demo.yaml
三. 部署Bookinfo应用
使用如下命令安装应用容器,这会花费一点时间
kubectl apply -f samples/bookinfo/kube/bookinfo.yaml
为应用定义ingress网关
istioctl create -f samples/bookinfo/routing/bookinfo-gateway.yaml
查看所有的服务都处在运行(Running
)状态
kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
details 10.0.0.31 <none> 9080/TCP 6m
kubernetes 10.0.0.1 <none> 443/TCP 7d
productpage 10.0.0.120 <none> 9080/TCP 6m
ratings 10.0.0.15 <none> 9080/TCP 6m
reviews 10.0.0.170 <none> 9080/TCP 6m
查看pods
kubectl get pods
NAME READY STATUS RESTARTS AGE
details-v1-1520924117-48z17 2/2 Running 0 6m
productpage-v1-560495357-jk1lz 2/2 Running 0 6m
ratings-v1-734492171-rnr5l 2/2 Running 0 6m
reviews-v1-874083890-f0qf0 2/2 Running 0 6m
reviews-v2-1343845940-b34q5 2/2 Running 0 6m
reviews-v3-1813607990-8ch52 2/2 Running 0 6m
使用ngress的IP 和 port访问应用
这里主要介绍Minikube方式,如果是其他环境请参考Determining the ingress IP and ports
执行
kubectl get svc istio-ingressgateway -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingressgateway LoadBalancer 10.109.76.80 <pending> 80:31380/TCP,443:31390/TCP,31400:31400/TCP 16h
此处EXTERNAL-IP
的值为<pending>
在这种情况下可以通过服务的node port
访问gateway
获取访问端口
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}')
Minikube环境下获取访问IP
export INGRESS_HOST=$(minikube ip)
Set GATEWAY_URL:
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
访问
curl -o /dev/null -s -w "%{http_code}\n" http://${GATEWAY_URL}/productpage
结果 200
如果Minikube 的IP本地可以访问,可以用浏览器打开http://$GATEWAY_URL/productpage
访问Bookinfo的web页面.
Cleanup Bookinfo
删除路由,终止应用pods
samples/bookinfo/kube/cleanup.sh
确认是否关闭
istioctl get gateway #-- there should be no more gateway
istioctl get virtualservices #-- there should be no more virtual services
kubectl get pods #-- the Bookinfo pods should be deleted
Istio-0.8.0在Minikube环境中快速启动Bookinfo示例相关推荐
- 故障诊断:12cR2 Flex ASM 环境中节点启动失败的诊断和分析
点击▲关注 "数据和云" 给公众号标星置顶 更多精彩 第一时间直达 作者 | 张维照,云和恩墨技术专家,Oracle ACEA,2006年起从事数据库管理工作,2009年转 O ...
- Mysql在生产环境中快速清理数据及表空间释放
Mysql数据快速清理及表空间释放 1.TABLES表主要字段说明: MySQL的 information_schema 数据库中的TABLES 表记录了MySQL数据库中每个表占用的空间.表记录的行 ...
- springBoot项目在Linux中快速启动
文章目录 前言 一.windows环境 命令行启动常见问题及解决方案 1.1 没有主清单属性 1.2 端口冲突解决方案 二.Linux环境 启动常见问题及解决方案 1.如何后台启动? 2.启动后如何关 ...
- Linux环境中ElasticSearch启动时常见错误、解决
● ES启动常见报错及解决措施 说明 文章基于ElasicSearch版本:7.3.2,Linux版本:CentOS-7.7.供其他版本参考. 启动报错 报错1-- [xpack.ml.ena ...
- 在webStrom中快速启动自己安装的浏览器(360极速浏览器为例)
一.file > settings或者Ctrl+Alt+s 二.找到tools下面的web browers,会出现目前默认的几个浏览器 三.点击右侧的'+',列表会默认添加chrome,直接编辑 ...
- Linux环境中Qt程序的手工发布
Qt 5.7.0 编写的程序需要部署到一台没有安装Qt的目标机器上,程序采用C++与QML混合编程,QML做界面,C++写逻辑. 环境说明 开发环境 Ubuntu 16.04.1 LTS 运行环 ...
- 云计算环境中需要用到的新技术
云计算都会用到哪些技术 人工智能 人工智能(AI)允许机器从处理经验中学习,适应新的数据输入和来源,并最终对AI进行类似人类的分析和调整.人工智能操作的主要方式是消耗大量的数据并识别和分析数据中的模式 ...
- anaconda新建python2环境安装不了jupyterlab_Anaconda 5.0.0 JupyterLab 0.27.0 中配置多Python环境支持...
Anaconda 5.0.0 JupyterLab 0.27.0 中配置多Python环境支持 概述 Anaconda 5.0.0 中自带了 JupyterLab 0.27.0 版本,这是 Anaco ...
- matlab 数组去掉0,科学网—在Matlab环境下去除矩阵中的零向量 - 李航的博文
主要用到了any()函数. e.g.1 找到矩阵中为零的列向量,并将其删除. >> a=[1,2,3;0,0,0;4,5,6;0,0,0;7,8,9]' a = 1 0 4 ...
最新文章
- 1.7Oob 继承关系中构造方法的使用
- laravel -admin 禁止某一行删除
- “自带大屏”的便利店,你见过吗?
- 计算机英语论文摘要,求英语高手翻译论文摘要,非常感谢!
- 字节数组和字符串的相互转化……
- 智能化视频开发神器来了,AV Pipeline Kit 架构解析
- python机器学习库sklearn——K最近邻、K最近邻分类、K最近邻回归
- AStar寻路2-性能优化
- IBM Lotus Domino Designer 下载安装记录
- c语言如何写出高清的录屏软件,有了这几款电脑录屏软件, 一键高清录制不再是梦...
- 简易版百度换肤之background属性
- matlab随机生成点图,matlab随机生成散点图
- 我的小程序之个人所得税计算器
- AcWing每日一题 1934贝茜放慢脚步
- 统计学cv值是什么意思_什么是CV值
- 千万级大V独家合作,西瓜视频用什么吸引创作人?
- 【Python之GUI开发案例】用Python的tkinter开发聚合翻译神器
- 【centos】geoserver支持ecw
- mac迅雷如何批量下载页面全部链接(无需插件,只需三步)
- 网络空间安全-密码学
热门文章
- python中矩阵拼接_numpy实现合并多维矩阵、list的扩展方法
- Android之View的绘制流程解析
- Flutter开发之WebView加载网页(24)
- (011) java后台开发之泛型类
- linux执行class文件_「大数据干货」Windows系统和Linux系统中打jar包与导入语句剖析...
- Suring开发集成部署时问题记录
- 在 CentOS7 安装 ELK【转】
- Difference between prop and attr in different version of jquery
- 数学图形(1.2)Sin曲线
- 红旗桌面版本最新运用体式款式和成就解答100例-8