istio를 빌드하기 위한 환경 구성으로 필요한건 다음과 같습니다.
1. git
2. docker
3. make
3개는 맥에서 모두 설치하는건 간단하니 넘어가도록 하겠습니다.
저는 orbstack을 사용하고 있습니다.
이미지 전체 다 빌드하기
make docker
이렇게 하면 에러가 발생한다. .. 하하 아직 확인방법을 못찾았다..
docker를 무조건 써야하는것 같은데 확인해볼 예정입니다.
추가) 원인..
이유를 알아냈는데 orbstack을 쓰면서 docker buildx ls를 하면 에러가 난다.
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
brave_hopper* docker-container
\_ brave_hopper0 \_ orbstack running v0.16.0 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
default docker
\_ default \_ default running v0.15.1 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
orbstack docker
\_ orbstack \_ orbstack running v0.15.1 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/arm/v7, linux/arm/v6
desktop-linux error
Cannot load builder desktop-linux: Cannot connect to the Docker daemon at unix:///Users/nueah/.docker/run/docker.sock. Is the docker daemon running?
해결방법
우선 docker buildx ls 할때 에러나는건 다음의 방법을 이용하면 해결할 수 있습니다.
먼저 도커 컨텍스트를 확인해봅니다.
docker context ls
결과는 다음과 같습니다.
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
desktop-linux unix:///Users/xx/.docker/run/docker.sock
orbstack * OrbStack unix:///Users/xx/.orbstack/run/docker.sock
문제가 되는 context는 desktop-linux였기 때문에 이걸 삭제해줍니다.
docker context rm desktop-linux
이제 docker buildx ls를 해도 에러가 보이지 않습니다.
하지만 이렇게 해도 빌드시 에러가 발생하는데 에러 로그는 이렇게 도커 데몬이 실행중이지 않은 것 같다면서 에러가 발생합니다.
2024-09-24T13:52:14.380441Z info Running command: tools/docker-copy.sh pilot/docker/Dockerfile.ztunnel /work/out/linux_amd64/ztunnel /work/out/linux_arm64/dockerx_build/build.docker.ztunnel
2024-09-24T13:52:14.431306Z info make complete runtime=23.212511926s
2024-09-24T13:52:14.431962Z info Running command: docker buildx bake -f /work/out/linux_arm64/dockerx_build/docker-bake.json all
[+] Building 0.0s (1/1) FINISHED docker-container:brave_hopper
=> [internal] load local bake definitions 0.0s
=> => reading /work/out/linux_arm64/dockerx_build/docker-bake.json 6.25kB / 6.25kB 0.0s
ERROR: Cannot connect to the Docker daemon at unix:///Users/xx/.orbstack/run/docker.sock. Is the docker daemon running?
2024-09-24T13:52:14.686707Z info build complete runtime=23.46897176s
Error: exit status 1
make[1]: *** [tools/istio-docker.mk:31: docker] Error 255
make: *** [docker] Error 2
그래서 그냥 이제 기본 default context를 설정하도록 변경해봅니다.
docker context use default
변경이 잘된 것을 확인 한 뒤 다시 빌드해보면 성공적으로 빌드가 되는것을 확인할 수 있습니다.
이미지 정보 변경해서 빌드하기
HUB="docker.io/umhaha" TAG="1.18.7-test" make docker
이렇게 HUB 정보랑 TAG정보를 넣어서 빌드하면 빌드할때 적용된 모습을 확인할 수 있습니다.
istioctl 빌드하기
참고로 이렇게 치면 istioctl도 빌드할 수 있습니다.
make istioctl
특정 환경에 맞춰 빌드하고 싶다면, 다음과 같은 명령어를 사용하세요.
GOOS에는 원하는 OS 버전을, GOARCH에는 아키텍처를 입력하면 됩니다.
GOOS=darwin GOARCH=arm64 ./common/scripts/gobuild.sh out/darwin_arm64/istioctl ./istioctl/cmd/istioctl
'K8S > istio' 카테고리의 다른 글
istio 멀티 클러스터 구성하기 (작성중) (0) | 2024.09.27 |
---|---|
istio 멀티 클러스터 설치를 위한 인증서 구성 방법 (0) | 2024.09.24 |