2

如何编译 Istio?

 6 months ago
source link: https://jimmysong.io/blog/how-to-build-istio/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
  • 日期 :2022年5月15日
  • 分类 : Istio
  • 字数 :463 字
  • 阅读大约需要 :2 分钟

本文将指导你如何在 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_amd64darwin_amd64 架构的二进制文件。

以上就是在 macOS 上构建 Istio 的过程,如果你已经下载好了构建所需要的的 Docker 镜像,那么构建时间将不超过一分钟。

0 comments

Be the first person to leave a comment!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK