如何编译 Istio?
本文将指导你如何在 macOS 上编译 Istio 二进制文件。
构建前的准备
在正式开始构建前, 参考这篇文档 ,以下是我的构建环境信息:
- macOS 12.3.1 Darwin AMD64
- Docker Desktop 4.8.1(78998)
- Docker Engine v20.10.14
开始构建
参考 这篇文档 编译 Istio。
首先在 GitHub 上
下载 Istio 代码,将代码下载到 $GOPATH/src/istio.io/istio
目录下,下文中的命令都在该根目录下执行。
执行下面的命令下载 Istio 依赖的包,这些包将下载到 vendor
目录下:
go mod vendor
然后执行下面的命令构建 Istio:
sudo make build
如果你没有在命令前加 sudo
,你还是可能遇到下面的错误:
fatal: unsafe repository ('/work' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory /work fatal: unsafe repository ('/work' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory /work Makefile.core.mk:170: *** "TAG cannot be empty". Stop. make: *** [build] Error 2
构建完的二进制文件将保存在 out
目录下,其目录结构如下:
out ├── darwin_amd64 │ ├── bug-report │ ├── client │ ├── envoy │ ├── extauthz │ ├── install-cni │ ├── istio-cni │ ├── istio-cni-taint │ ├── istio-iptables │ ├── istio_is_init │ ├── istioctl │ ├── logs │ ├── operator │ ├── pilot-agent │ ├── pilot-discovery │ ├── release │ └── server └── linux_amd64 ├── envoy ├── envoy-centos ├── logs └── release
同时构建出了 linux_amd64
和 darwin_amd64
架构的二进制文件。
总结
以上就是在 macOS 上构建 Istio 的过程,如果你已经下载好了构建所需要的的 Docker 镜像,那么构建时间将不超过一分钟。
参考
「其他文章」
- 自 2020 年以来全球的开源商业化软件融资情况
- IstioCon 2022 回顾及录像、PPT 分享
- Beyond Istio OSS —— Istio 服务网格的现状及未来
- 如何在 Istio 中集成 SPRIRE?
- 什么是零信任?
- 为什么 Istio 要使用 SPIRE 做身份认证?
- 再见 KataCoda!
- 如何编译 Istio?
- Istio 数据平面 Pod 启动过程详解
- Istio 中的各组件端口及功能详解
- Istio sidecar 中的流量类型及 iptables 规则详解
- Tetrate 公司开源项目介绍
- 跨越鸿沟:理解鸿沟理论
- 网易开源 Istio 扩展项目 Slime 简介——基于 Istio 的智能服务网格管理器
- 服务网格现状之我见
- 如何理解 Istio Ingress, 它与 API Gateway 有什么区别?
- 如何调试 Kubernetes 中的微服务 ——proxy、sidecar 还是 service mesh?
- Jimmy Song:为什么山寨币持有者不关心比特币 Taproot 升级?
- Zoom OBS B 站直播配置手册
- Istio 开源四周年回顾与展望