Istio 1.1部署实践
前提条件
- 正确安装配置Kubernetes集群
- CentOS Linux release 7.5.1804
安装
下载istio 1.1版本
[root@vm157 ~]# wget https://github.com/istio/istio/releases/download/1.1.1/istio-1.1.1-linux.tar.gz …… 2019-03-26 09:39:06 (483 KB/s) - ‘istio-1.1.1-linux.tar.gz’ saved [15736205/15736205]
Istio安装有多种方式,本文根据helm template生成istio部署的配置文件,其他部署方式请参考官方文档。
[root@vm157 ~]# cd istio-1.1.1/
[root@ruffy istio-1.1.1]# helm template ../install/kubernetes/helm/istio-init --name istio-init --namespace istio-system > istio-init.yaml
[root@ruffy istio-1.1.1]# kubectl get crds | grep 'istio.io\|certmanager.k8s.io' | wc -l
[root@ruffy istio-1.1.1]# InternalIp=10.20.1.175
[root@ruffy istio-1.1.1]# helm template install/kubernetes/helm/istio --namespace istio-system \
> --set global.mtls.enabled=true \
> --set global.controlPlaneSecurityEnabled=true \
> --set gateways.istio-ingressgateway.type=NodePort \
> --set grafana.enabled=true \
> --set servicegraph.enabled=true \
> --set servicegraph.ingress.enabled=true \
> --set servicegraph.ingress.hosts={servicegraph-istio-system.${InternalIp}.nip.io} \
> --set tracing.enabled=true \
> --set tracing.jaeger.ingress.enabled=true \
> --set tracing.jaeger.ingress.hosts={jaeger-query-istio-system.${InternalIp}.nip.io} \
> --set tracing.ingress.enabled=true \
> --set tracing.ingress.hosts={tracing-istio-system.${InternalIp}.nip.io} \
> --set kiali.enabled=true \
> --set kiali.ingress.enabled=true \
> --set kiali.ingress.hosts={kiali-istio-system.${InternalIp}.nip.io} \
> --set kiali.dashboard.grafanaURL=http://grafana-istio-system.${InternalIp}.nip.io \
> --set kiali.dashboard.jaegerURL=http://jaeger-query-istio-system.${InternalIp}.nip.io \
> --name istio > ruffy/istio-${InternalIp}.yaml [root@vm175 istio-1.1.1]# cd ruffy
[root@vm175 ruffy]# ls
istio-10.20.1.175.yaml istio-init.yaml namespace.yaml
根据配置模板部署Isito组件
[root@vm175 istio-1.1.1]# kubectl apply -f ruffy/namespace.yaml
namespace/istio-system created
[root@vm175 istio-1.1.1]# kubectl apply -f ruffy/istio-init.yaml
configmap/istio-crd-10 created
configmap/istio-crd-11 created
serviceaccount/istio-init-service-account created
clusterrole.rbac.authorization.k8s.io/istio-init-istio-system configured
clusterrolebinding.rbac.authorization.k8s.io/istio-init-admin-role-binding-istio-system configured
job.batch/istio-init-crd-10 created
job.batch/istio-init-crd-11 created
[root@vm175 istio-1.1.1]# kubectl apply -f ruffy/istio-10.20.1.175.yaml
poddisruptionbudget.policy/istio-galley created
poddisruptionbudget.policy/istio-ingressgateway created
poddisruptionbudget.policy/istio-policy created
poddisruptionbudget.policy/istio-telemetry created
poddisruptionbudget.policy/istio-pilot created
……
rule.config.istio.io/promhttp created
rule.config.istio.io/promtcp created
rule.config.istio.io/promtcpconnectionopen created
rule.config.istio.io/promtcpconnectionclosed created
handler.config.istio.io/kubernetesenv created
rule.config.istio.io/kubeattrgenrulerule created
rule.config.istio.io/tcpkubeattrgenrulerule created
kubernetes.config.istio.io/attributes created
destinationrule.networking.istio.io/istio-policy created
destinationrule.networking.istio.io/istio-telemetry created
查看Isito部署状态
[root@vm175 istio-1.1.1]# kubectl -n istio-system get all NAME READY STATUS RESTARTS AGE pod/grafana-7b46bf6b7c-xr2lw 1/1 Running 0 2m
pod/istio-citadel-5878d994cc-kfm7p 1/1 Running 0 2m
pod/istio-cleanup-secrets-1.1.1-wlk7p 0/1 Completed 0 2m
pod/istio-galley-6db4964df6-9lpsl 1/1 Running 0 2m
pod/istio-grafana-post-install-1.1.1-44lv7 0/1 Completed 0 2m
pod/istio-ingressgateway-cd5df7bc6-sgh5m 0/1 Running 0 2m
pod/istio-init-crd-10-q5kvp 0/1 Completed 0 3m
pod/istio-init-crd-11-kdd25 0/1 Completed 0 3m
pod/istio-pilot-597dd58685-hsp72 1/2 Running 0 2m
pod/istio-policy-67f66c8b5c-8kqwm 2/2 Running 5 2m
pod/istio-security-post-install-1.1.1-gcjrm 0/1 Completed 0 2m
pod/istio-sidecar-injector-59fc9d6f7d-j9prx 0/1 ContainerCreating 0 2m
pod/istio-telemetry-c5bfc457f-qqzb5 2/2 Running 4 2m
pod/istio-tracing-75dd89b8b4-2t2hl 0/1 ContainerCreating 0 2m
pod/kiali-5d68f4c676-bdltq 1/1 Running 0 2m
pod/prometheus-89bc5668c-7kp8b 0/1 Init:Error 1 2m
pod/servicegraph-57bfbbd697-6tldj 0/1 Running 0 2m …… NAME DESIRED SUCCESSFUL AGE job.batch/istio-cleanup-secrets-1.1.1 1 1 2m job.batch/istio-grafana-post-install-1.1.1 1 1 2m job.batch/istio-init-crd-10 1 1 3m job.batch/istio-init-crd-11 1 1 3m job.batch/istio-security-post-install-1.1.1 1 1 2m
增加grafana和prometheus的ingress文件
Istio-grafana.yaml
[root@vm175 ruffy]# cat istio-grafana-ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: grafana namespace: istio-system labels: app: grafana annotations: spec: rules:
- host: granafa-istio.10.20.1.175.xip.io http: paths:
- path: / backend: serviceName: grafana servicePort: 3000
Isito-prometheus-ingress.yaml [root@vm175 ruffy]# cat istio-prometheus-ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: istio-prometheus namespace: istio-system spec: rules:
- host: prometheus-istio.10.20.1.175.xip.io http: paths:
- path: /prometheus backend: serviceName: prometheus servicePort: 9090}}}
查看部署的组件访问路径 {{{[root@vm175 ruffy]# kubectl -n istio-system get ing NAME HOSTS ADDRESS PORTS AGE grafana granafa-istio.10.20.1.175.xip.io 80 5m istio-prometheus prometheus-istio.10.20.1.175.xip.io 80 5m istio-servicegraph servicegraph-istio-system.10.20.1.175.nip.io 80 56m istio-tracing tracing-istio-system.10.20.1.175.nip.io 80 56m kiali kiali-istio-system.10.20.1.175.nip.io 80 56m
访问kiali时,出现secret不存在的情况,需要通过kiali-secret.yaml文件创建secret,并且重启kiali服务。
Kiali-secret.yaml文件
[root@vm175 ruffy]# cat kiali-secret.yaml apiVersion: v1 kind: Secret metadata: name: kiali namespace: istio-system labels: app: kiali type: Opaque data: username: "YWRtaW4=" passphrase: "YWRtaW4="
访问Kiali
浏览器输入地址:http://kiali-istio-system.10.2 ... iali/
用户名/密码:admin/admin

访问servicegraph
浏览器输入地址:http://servicegraph-istio-syst ... .html

访问tracing
浏览器输入地址:http://servicegraph-istio-syst ... .html

访问granafa
浏览器输入地址:http://granafa-istio.10.20.1.1 ... d%3D1

至此 Istio1.1及其依赖组件搭建完毕。
Istio 1.1部署实践的更多相关文章
- 基于AWS的自动化部署实践
过年前,我给InfoQ写了篇文章详细介绍我们团队在过去4年基于AWS的自动化部署实践.文章包括了:为什么选择AWS.AWS上自动化部署的优势和挑战.我们的解决方案,以及和AWS DevOps方案(Op ...
- 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)
基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势) 前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...
- winserver的consul部署实践与.net core客户端使用(附demo源码)
winserver的consul部署实践与.net core客户端使用(附demo源码) 前言 随着微服务兴起,服务的管理显得极其重要.都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的 ...
- 《OpenStack部署实践》
<OpenStack部署实践> 基本信息 作者: 张子凡 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115346797 上架时间:2014-2-27 出版日期:2014 ...
- Zabbix3.0部署实践
Zabbix3.0部署实践 Zabbix3整个web界面做了一个全新的设计. 1.1Zabbix环境准备 [root@linux-node1 ~]# cat /etc/redhat-release ...
- Jenkins+SVN+Maven+shell 自动化部署实践
JAVA环境中利用Jenkins+svn+maven进行自动化部署实践 一. 前言2 1.介绍jenkins2 1.本地项目打包2 2.通过secureCRT工具,手动传输到服务器2 3.然后 ...
- 基于 Docker 和 GitLab 的前端自动化部署实践笔记
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
- Istio 1.4 部署指南
原文链接:Istio 1.4 部署指南 Istio 一直处于快速迭代更新的过程中,它的部署方法也在不断更新,之前我在 1.0 版本中介绍的安装方法,对于最新的 1.4 版本已经不适用了.以后主流的部署 ...
- 理想的DevOp流程怎么做?看看Slack的代码部署实践 原创 Michael Deng 高可用架构 今天
理想的DevOp流程怎么做?看看Slack的代码部署实践 原创 Michael Deng 高可用架构 今天
随机推荐
- MySQL基础:show命令总结
show命令 show命令可以提供关于数据库.表.列,或关于服务器的状态信息. 总结 # 显示二进制文件以及文件大小(需要开启二进制日志记录功能) SHOW {BINARY | MASTER} LOG ...
- Luogu P2176 [USACO14FEB]路障Roadblock
解题思路 这是一道最短路题目,不知道大家有没有做过玛丽卡这道题目,如果没做,在做完这道题之后可以去拿个双倍经验哦 先求出一张图中的最短路径,并将其记录下来,我们首先思考:要有增量的前提是新的最短路径比 ...
- UVA 674 Coin Change (完全背包)
解法 dp表示目前的种数,要全部装满所以f[0]=1其余为0的初始化是必不可少的 代码 #include <bits/stdc++.h> using namespace std; int ...
- 每日命令:(2)cd
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. ...
- (一)python条件语句和基本数据类型
条件语句 语法一:if...else if <条件成立>: 处理过程 else: 处理过程 语法二:if...elif...else if <条件1成立>: 处理过程1 el ...
- 【Codeforces 159B】Matchmaker
[链接] 我是链接,点我呀:) [题意] 笔和笔盖 笔有颜色和直径 笔盖也有颜色和直径 笔盖和笔如果直径相等 那么称为good 如果笔盖和笔直径相等.颜色也相等,那么称为very good 问你怎样安 ...
- Poor Hanamichi
Poor Hanamichi Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Tensorflow Eager execution and interface
Lecture note 4: Eager execution and interface Eager execution Eager execution is (1) a NumPy-like li ...
- 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— C语言编程基础
C语言介绍 C语言基本是每个编程人员必学的一面语言,很好掌握,是理解编程的关键.很多编程语言基于其编写或者基于此语言的衍生品编写. C语言是人机交互的一个基础语言之一,虽然是之一,单一般其实就是唯一 ...
- [51Nod1089] 最长回文子串 V2(Manacher算法)
1089 最长回文子串 V2(Manacher算法) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 回文串是指aba.abba.cccbccc.aaaa这种左右对称 ...