공홈에서는 파일을 내리고 마소 스토어로 배포하고 있어서 공유드립니다.
'자료실' 카테고리의 다른 글
실시간 채팅 프로그램 ZeroIRC (0) | 2013.05.08 |
---|---|
카르마 클라이언트 (0) | 2013.05.08 |
Half-Life : Decay (0) | 2013.05.08 |
네로 버닝롬 포터블 [첨부파일] (0) | 2013.04.21 |
더블 모니터 [첨부파일] (0) | 2013.04.21 |
공홈에서는 파일을 내리고 마소 스토어로 배포하고 있어서 공유드립니다.
실시간 채팅 프로그램 ZeroIRC (0) | 2013.05.08 |
---|---|
카르마 클라이언트 (0) | 2013.05.08 |
Half-Life : Decay (0) | 2013.05.08 |
네로 버닝롬 포터블 [첨부파일] (0) | 2013.04.21 |
더블 모니터 [첨부파일] (0) | 2013.04.21 |
해당 게시글은 기록과 자료 공유를 위해 작성합니다.
NHN Cloud의 프라이빗 레지트스트리(NCR)의 PULL, PUSH 의 가이드는 공식 문서에도 잘 적혀있으니
참고 하도록 합시다.
https://docs.nhncloud.com/ko/Container/NCR/ko/user-guide/
프라이빗 레지스트리를 이용하기에 앞서 NCR 생성 후, 접근을 위하여
계정 -> API 보안 설정 탭에 들어가서 Access Key ID 생성을 합니다.
생성된 레지스트리를 클릭하여 주소 확인을 합시다.
레지스트리에 로그인합니다.
Username과 Password는 이전에 생성하였던 API 보안 설정에서 생성한 User Access Key 입니다.
$ docker login {사용자 레지스트리 주소}
테스트용 이미지를 받아줍니다. (본인이 필요한 이미지가 있을 경우, 해당 이미지로 pull 하여 수정 후 commit 합시다.)
[root@ysh-kube-mgmt test3]# docker pull nginx:stable
작동 확인을 위해 간단히 실행만 하였습니다.
[root@ysh-kube-mgmt test3]# docker run -itd -p 80:80 --name=web nginx:stable
9ee7f649badf5818ab6380be6ead2b4825b9a8e2d610fd4f691027464a6a4550
[root@ysh-kube-mgmt test3]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ee7f649badf nginx:stable "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web
[root@ysh-kube-mgmt test3]# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
이후 업로드 할 이미지를 tag 명령어를 사용해 레지스트리 주소/이미지 이름:태그로 변경 후, 업로드 합시다.
# 이미지 태그 변경
$ docker tag $이미지 이름:$태그 $사용자 레지스트리 주소/$이미지 이름:$태그
# 업로드
$ docker push $이미지 이름:$태그 $사용자 레지스트리 주소/$이미지 이름:$태그
NCR 에서 확인하였을 때, 정상적으로 업로드 된 것을 확인 할 수 있습니다.
해당 프라이빗 레지스트리에 업로드 된 이미지를 쿠버네티스에 활용하기 위해선 시크릿을 생성하여 자격증명을 해야합니다.
자세한 내용은 쿠버네티스 공식 문서에도 기술되어 있습니다.
https://kubernetes.io/ko/docs/tasks/configure-pod-container/pull-image-private-registry/
문서를 인용하였을 때, 도커 로그인 시 자격증명을 저장하는 config.json의 위치를 기재하도록 명시되어있는데, 이는 이전에 API로 NCR에 로그인 하였을 때, 경로를 표기하여 줬을 것입니다.
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=<path/to/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
저는 루트를 활용하여 사용하였기 때문에 루트 홈 디렉토리의 .docker에 작성된 것을 확인 할 수 있습니다.
[root@ysh-kube-mgmt test3]# docker login {저장소명}-kr1-registry.container.nhncloud.com/{저장소명}
Username:
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
해당 경로의 파일을 출력해보면, 자격 증명을 저장하는 설정 값이 들어가있습니다.
이 컨픽값이 저장된 json으로 secret을 생성하여 줍니다.
[root@ysh-kube-mgmt .docker]# kubectl create secret generic regcred --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson
secret/regcred created
secret가 잘 생성되었는지 확인합시다.
[root@ysh-kube-mgmt ~]# kubectl get secrets regcred
NAME TYPE DATA AGE
regcred kubernetes.io/dockerconfigjson 1 3h45m
아까 업로드한 이미지를 테스트하기 위한 간단한 YAML 예시입니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: web
image: {저장소명}-kr1-registry.container.nhncloud.com/{저장소명}/web:1.0
ports:
- containerPort: 80
imagePullSecrets:
- name: regcred
작성된 YAML로 프로비저닝 합시다.
[root@ysh-kube-mgmt test3]# kubectl apply -f web.yaml
deployment.apps/web created
이후 POD의 이미지를 조회하였을 때, 정상적으로 프라이빗 레지스트리에서 가져오는 것을 확인 할 수 있습니다.
[쿠버네티스] helm 설치 및 기본 사용법 (0) | 2024.07.30 |
---|---|
[도커] SPT fika 도커로 구동하기 (0) | 2024.07.15 |
[쿠버네티스] kubectl 치트시트 (명령어 자동 완성) (0) | 2023.10.04 |
쿠버네티스 (0) | 2023.09.15 |
[NKS] NHN Cloud Kubernetes service 설치 및 기초 세팅 (0) | 2023.09.13 |
레드헷 계열
yum install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
데비안 계열
apt-get install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
kubectl 입력 후, tab 입력시 확인 가능
[쿠버네티스] helm 설치 및 기본 사용법 (0) | 2024.07.30 |
---|---|
[도커] SPT fika 도커로 구동하기 (0) | 2024.07.15 |
[NKS] 프라이빗 레지스트리 (NCR) 사용하기 (2) | 2023.11.21 |
쿠버네티스 (0) | 2023.09.15 |
[NKS] NHN Cloud Kubernetes service 설치 및 기초 세팅 (0) | 2023.09.13 |