Docker for mac安装Istio的详细步骤
本篇内容介绍了“Docker for mac安装Istio的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
安装 Kubernetes
在 Docker 18.06.0 的增加对 Kubernetes 的正式支持(在之前的版本也有支持,只是非正式版本)
这里调整了 docker 的内存为 4GB,之前默认 2GB 运行 Kubernetes 感觉会很吃力(当部署完Istio 这一套发现 4 GB也很吃紧,改成 7GB 后电脑才不那么热...)。
找到 Kubernetes 选项,勾选 Enable 选择 Kubernetes,然后执行 Apply
我们会看到 Kubernetes 一直在 starting... ,此时 docker 正在下载镜像,殊不知在遥远的东方有一堵“墙”,下载需要的镜像越过墙才可以。
要相信这个世界上总会有人与你一样遇到相同的问题,于是这个人就写了一个 github 仓库。按照文档所说,我们需要配置一下国内的代理,然后执行下载镜像脚本,再重新启动 Kubernetes ,Kubernetes 就这样奇迹般的启动起来了。
安装 kubectl
kubectl 是 Kubernetes 的客户端
brew install kubernetes-cli# 或者更新brew upgrade kubernetes-cli
安装 Kubernetes dashboard
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/class="lazy" data-src/deploy/recommended/kubernetes-dashboard.yaml
启动 proxy
kubectl proxy
访问这里:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
如果是想玩玩单点的 Kubernetes 到这里就结束啦~
安装 Istio
先下载 Istio 最新版本
找个你心仪的地方解压,然后配置环境变量:
export PATH="$PATH:/解压的目录/istio-1.0.0/bin"
如果放在 .bash_profile
或者 .zshrc
文件中记得要 source 一下
source ~/.bash_profile
验证一下是否生效
istioctl version
安装 Istio
这里为了快速简单的搭建 Istio ,使用 helm 来帮助我们。
安装 Helm
Helm 是 Kubernetes 的包管理器
brew install kubernetes-helm# 验证一下helm version
然后我们安装 Istio 步骤
如果 Helm 版本小于 2.10.0 ,请通过 kubectl apply 安装 Istio,并等待几秒钟,以便在kube-apiserver 中提交CRD:
kubectl apply -f install/kubernetes/helm/istio/templates/crds.yamlkubectl apply -f install/kubernetes/helm/istio/charts/certmanager/templates/crds.yaml
官方文档提供了安装几种方式,Option 1 使用 helm template
安装,可选的东西比较少。所以我们选择 Option 2。
注意:这2个选项是互斥的,只能二选一哦。
如果还没有为 Tiller 配置 service account,请配置一个:
kubectl create -f install/kubernetes/helm/helm-service-account.yaml
使用 service account 在您的集群中安装 Tiller
helm init --service-account tiller
安装 Istio
helm install install/kubernetes/helm/istio --name istio --namespace istio-system \--set tracing.enabled=true \--set kiali.enabled=true \--set grafana.enabled=true
默认 tracing 、kiali 、grafana 并不会开启,这里需要在安装时手动 --set xxx.enabled=true
进行开启。配置说明可查看:install/kubernetes/helm/istio/README.md
PS: kiali pod 部署时会无法正常启动,不影响使用,后面我们会再提到。
部署 Bookinfo
我们来部署一个官方的 Bookinfo Examples,进入 istio 的目录
kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
确认一下 service 和 pod 是否正确启动了
kubectl get services
kubectl get pods
然后我们来创建网关
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
再 check 一下
istioctl get gateway
注意! 后面会和官方文档不太一样啦,官方会去获取 ingress 的 ip 和端口,我们使用的 Docker for Mac 不需要查看映射端口,在 Dashboard 上找到 namespace 选择为 istio-system ,就可以看到我们映射的端口。
激动人心的时刻到啦,访问这里:http://localhost/productpage
就可以看到 Bookinfo 的demo啦!
卸载
可以直接参考官方文档啦!
分布式跟踪-Jaeger
开启 Jaeger 网络映射
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686 &
访问 http://127.0.0.1:16686/
可以点开具体的一次Trace来查看链路情况
更多好玩的东西请参考官方文档
使用Grafana 查询指标
先看来看我们的 Prometheus和 Grafana 是否正常
kubectl -n istio-system get svc prometheuskubectl -n istio-system get svc grafana
开启 Grafana 网络映射
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &
访问 http://localhost:3000/d/LJ_uJAvmk/istio-service-dashboard?refresh=10s&orgId=1
更多好玩的东西请参考官方文档
kiali
kiali 目前还在开发当中,所以不能用于生产,在Istio 默认不被开启,不过玩玩还是可以的。前面提到 kiali 在部署的时候无法启动,查看了一下原因是拉取的镜像为docker.io/kiali/kiali:istio-release-1.0
,而Docker hub 中根本没有这个 Tag ...
所以抱着试试看的态度,在 Dashboard 手动改一下 tag 为 latest ,更新! 开启映射网络端口
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=kiali -o jsonpath='{.items[0].metadata.name}') 20001:20001 &
访问:http://localhost:20001/ 账号密码:admin/admin
看起来还是蛮酷的,更多细节可以参考 Kiali 官方文档
停止Kubernetes
在不需要的时候我们可以将Kubernetes 停止,以保证我们 Mac 的性能,在安装了太多的组件后会比较耗电。
一切都可以重来...
Docker for Mac 还提供了一个非常人性的功能——Reset
无论我们是安装过程出了问题还是需要做各种测试,只需要轻轻点击 【Reset Kubernetes cluster】一切就重新开始。
“Docker for mac安装Istio的详细步骤”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341