Harbor port 변경 시

Sbae·2023년 8월 8일
0
post-thumbnail

Harbor port 변경

작업 위치 : registry node
작업 내용 : harbor port 변경

  1. 설치 디렉토리로 이동

    • cd /data/harbor
  2. Harbor.yml 편집

    • vi harbor.yml
    # https related config
    https:
      # https port for harbor, default is 443
      port: [ 해당 부분 포트 변경 ]
      # The path of cert and key files for nginx
      certificate: [ 하버 인증서 위치 ]/harbor.crt
      private_key: [ 하버 인증서 위치 ]/harbor.key
  3. harbor 재실행

    • ./install.sh
  4. docker 디렉토리 변경

    • sudo mv /etc/docker/certs.d/[ registry domain ] /etc/docker/certs.d/[ registry domain ]:[ 변경한 포트 번호 ]
  5. docker login으로 확인

    • sudo docker logout
    • sudo docker login -u [ registry id ] -p [ registry pw ] [ registry domain ]:[ 변경한 포트 번호 ]

이 아래부터는 container runtime이 containerd인 k8s cluster node들의 설정을 변경하는 부분입니다.
harbor port만 변경하고 싶으신 분들은 위에만 참고하시면 됩니다.

연결 노드 설정 변경

작업 위치 : control plane, worker node
작업 내용 : harbor 연결 관련 설정 변경

  1. docker 디렉토리 변경

    • sudo mv /etc/docker/certs.d/[ registry domain ] /etc/docker/certs.d/[ registry domain ]:[ 변경한 포트 번호 ]
  2. config.toml 변경

    • sudo vi /etc/containerd/config.toml

      [plugins."io.containerd.grpc.v1.cri"] 섹션 안의 sandbox_image 내용을 바꿔준다.
      [plugins."io.containerd.grpc.v1.cri"]
      sandbox_image = "[ registry domain ]:[ 변경한  포트 번호 ]/registry.k8s.io/pause:3.8"
  3. containerd 디렉토리 변경

    • sudo mv /etc/containerd/certs.d/[ registry domain ] /etc/containerd/certs.d/[ registry domain ]:[ 변경한 포트 번호 ]
  4. containerd hosts.toml 변경

    • sudo vi /etc/containerd/certs.d/[ registry domain ]:[ 변경한 포트 번호 ]/hosts.toml

      server = "https://[ registry domain ]:[ 변경한  포트 번호 ]"
      
      [host."https://[ registry domain ]:[ 변경한  포트 번호 ]"]
      ca = "/etc/docker/certs.d/[ registry domain ]:[ 변경한  포트 번호 ]/ca.crt"
  5. containerd 재실행

    • sudo systemctl restart containerd
  6. 테스트용으로 이미지 아무 이미지나 pull 시도

    • sudo ctictl pull [ registry domain ]:[ 변경한 포트 번호 ]/docker.io/library/nginx:latest

containerd 설정

  • containerd의 config.toml

    [plugins."io.containerd.grpc.v1.cri".registry]
          config_path = "/etc/containerd/certs.d"
  • containerd의 구조

    /etc/containerd
    ├── certs.d
    │   ├── 172.16.100.11
    │   │   └── hosts.toml
    │   ├── gcr.io
    │   │   └── hosts.toml
    │   ├── ghcr.io
    │   │   └── hosts.toml
    │   ├── regi.acloud.run
    │   │   └── hosts.toml
    │   └── registry.k8s.io
    │       └── hosts.toml
    └── config.toml
  • containerd의 registry domain or ip에 hosts.toml 내용

    server = "https://172.16.100.11"
    
    [host."https://172.16.100.11"]
    ca = "/etc/docker/certs.d/172.16.100.11/ca.crt"

추가 작성

이렇게 설정하고 난 후에는 yaml 작성 시 images 부분에 image: 172.16.100.11/registry.k8s.io/kube-apiserver:v1.25.11와 같은 방식이 아닌 image: 172.16.100.11:9443/registry.k8s.io/kube-apiserver:v1.25.11와 같이 포트번호까지 붙혀줘야한다.

profile
끄적이는 일반인

2개의 댓글

comment-user-thumbnail
2023년 8월 8일

좋은 글 감사합니다. 자주 올게요 :)

1개의 답글