记一次坎坷的ISTIO安装过程--一个软件工程师对于解决程序报错问题的方法论的总结
所有的科学问题上升到最后都会成为哲学问题。
——康德
我要解决什么问题
我要安装istio
官方文档是如何教导我的
官方文档中,希望我先用下面这个命令把downloadIstio这个下载脚本下载下来,然后运行它
curl -L https://istio.io/downloadIstio | sh -
官方文档做了哪些理想化的假设
- 官方文档认为我能够访问istio.io
- 官方文档认为这个url没有问题
- 官方文档认为这个脚本没有问题
我的实际情况和官方的假设有哪些不同
实际上,存在很多问题:
- 这个istio.io的访问貌似要经过github-releases.githubusercontent.com,但是被墙了
- 这个url本身也有点问题,用浏览器访问的话,会被重新定向到https://raw.githubusercontent.com/istio/istio/master/release/downloadIstioCandidate.sh
- 这个脚本运行的时候,过程中curl命令也存在问题,导致下载不下来。
我应该为了消除官方文档预设条件以及我所处环境的差异性,应该做哪些事情
这个问题基本可以抽象成,我想调用官方文档的某个sdk,但是由于官方文档sdk的漏洞,我无法调用成功。
因此我需要深入研究官方文档的sdk,进而得到解决方案。
我做了如下三件事:
- 我用浏览器访问了https://istio.io/downloadIstio这个地址,发现重定向到了https://raw.githubusercontent.com/istio/istio/master/release/downloadIstioCandidate.sh,于是我直接把这个脚本复制到了本地。
- 我运行了这个脚本,发现并不能下载下来相关文件,于是我开始分析这个脚本。
- 我发现这个脚本本质上就是去github的istio仓库去下载一个相应的文件,于是我直接去github仓库下载下来了,问题解决。