티스토리 뷰

728x90

 

 

저는 os는 ubuntu22.04 package 관리 툴로는 snap 을 사용했습니다.

본인의 os 와 패키지 관리 툴에 맞는 명령어로 변경해주세요.

 

⭐⭐ master와 모든 worker 노드에서 실행해줘야 합니다. ⭐⭐

1. docker 관련 설정

1) docker  설치 (설치 되어있는 경우 생략)

sudo apt update
sudo snap version #2.61.1 이상이 아닌 경우 docker를 설치 할 수 없음으로 버전 업데이트를 해준다.

 

 

    1-1) snap  version 업데이트

#snap update
sudo snap refresh

    1-2) docker 설치

sudo snap install docker

 

 

    1-3) docker  시작

sudo systemctl start snap.docker.dockerd

 

 

    1-4) docker 상태 확인

sudo systemctl status snap.docker.dockerd

 

 

2) insecure-registries 설정 (https 인 경우 생략)

  2-1) daemon.json 변경

사설 registry 통신 프로토콜이  http인 경우 도커의 damon.json에 "insecure-registies" 를 설정해주어야 한다. 

 

sudo vi /var/snap/docker/current/config/daemon.json

 

daemon.json에 아래와 같이 insecure-registries에 사설 저장소의 ip와 port를 입력해준다.

{
    "log-level":        "error",
    "insecure-registries" : ["private registry ip:port"] #추가
}

 

  2-2) docker daemon 재시작

sudo systemctl restart snap.docker.dockerd

 

  2-3) 반영내용 확인

- 아래와 같이 Insecure Registries 에 입력한 사설 registry 정보가 보인다면 성공이다.

 

sudo docker info

3) 사설 registry  접속 가능 여부 확인

- 아래와 같이 {"repositories" : ["image명"]} 가 나오면 성공이다. 

curl -X GET http://[ip]:[port]/v2/_catalog -u admin -p

 

 

이렇게만 설정해주고 pod를 생성하면 ErrImagePull 에러가 난다.

쿠버네티스에게 어떤  registry를 사용 할 것인지를 알려주어야한다.

 

 

2. ranchers  k8s 관련 설정

1) registries.yaml 생성

- rancher config 가 위치한 곳에 registries.yaml 생성 (위치 확인 꼭 하세요!)

-  나는 검색 결과  /etc/rancher/rke2 하위에  config가 위치해있지만, 버전에 따라 rancher 하위에 생기는 폴더명이 다른 것 같다..(아직 초보라 잘 모른다..)

vi /etc/rancher/rke2/registries.yaml

# 아래 내용을 작성해주세요
mirrors:
  "사설저장소IP:PORT":
    endpoint:
      - "http://사설저장소IP:PORT"
configs:
  "사설저장소IP:PORT":
    auth:
      username: 계정명
      password: 비밀번호

 

 

2) rancher 서비스 재시작

sudo systemctl restart rke2-server.service

 

3. pod 생성하여 확인해보기

1) pod.yaml 생성

- 간단한 pod를 생성해서 확인해보기 위해 아래처럼 pod.yaml 을 만들었다.

- imagePullPolicy를 Always로 지정해놓으면 항상 repository에서 이미지를 다운로드 한다.

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: test
  name: test
spec:
  containers:
  - image: 사설저장소/이미지명
    name: test
    imagePullPolicy: Always

 

2) pod실행

kubectl apply -f pod.yaml

3) pod 확인

$ kubectl describe pod [파드명]

 

 

kubernetes secret 생성하여 설정하는 방법이 있는 것으로 알고 있는데... 이건 나중에 테스트 해보기로..!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함