kubenetes47 etcd backup, restore etcdctl을 사용해 etcd를 backup한다. 작업 전 준비사항 etcd를 backup하기 위해서는 ca.crt, server.crt, server.key가 필요함 crt 및 key등의 인증정보는 etcd가 구동중인 서버의 /etc/kubernetes/pki/etcd에 존재 (default) etcd가 구동중인 서버가 아닌 타 서버에서 etcd backup을 위해서는 etcd server에 있는 인증정보를 복사해와야함 1. etcd는 kube-system에 static pod으로 존재한다. etcd가 pod이 구동 중인지 확인한다. [root@km ~]# kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE coredns-64897985d-7.. 2022. 9. 15. docker 이미지 수정하는 방법 harbor에서 image를 pull 받은 후 해당 이미지를 수정해 배포해본다. modifytest image를 변경해본다. [root@kw1 flaskImage]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE modifytest latest fd5a051718ce 4 hours ago 917MB 1. modifytest 이미지를 통해 docker 컨테이너를 생성한 후 bash shell을 통해 컨테이너에 접속한다. 이미지 이름을 사용할 때는 아래 커맨드 사용 docker run -it [이미지 이름] /bin/bash docker run -it modifytest /bin/bash 이미지 id 사용할 때는 아래 커맨드 사용 docker run -it [이미.. 2022. 4. 5. k8s flask web 수정하기 실행 중인 flask web 페이지를 수정한다. 코드 수정 시 바로 반영하도록 ENV를 설정해준다. [root@kw1 flaskImage]# cat Dockerfile FROM python:3.6 # 현재 디렉토리의 모든 파일들을 컨테이너의 /app 디렉토리에 복사한다. COPY . /app # flask의 작업 위치가 /app이라는 뜻 WORKDIR /app ENV FLASK_APP="/app/ksFlask.py" ENV FLASK_DEBUG="True" RUN pip install -r requirements.txt EXPOSE 5000 CMD ["python", "/app/ksFlask.py"] 수정 시 바로 반영되게 debug=True를 추가함 from flask import Flask, rend.. 2022. 4. 4. ImagePullBackOff error 해결 error 발생 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 15s default-scheduler Successfully assigned default/testdeploy-cff5cf7d9-mws8j to kw1.dd.io Normal Pulling 14s kubelet Pulling image "harbor.ks.io/privatetest/flasktest:latest" Warning Failed 14s kubelet Failed to pull image "harbor.ks.io/privatetest/flasktest:latest": rpc error: code = Unknown desc = Er.. 2022. 4. 2. kubernetes 실행 중인 pod에 접속해 package 설치 kubectl exec [pod-name] -it -- bash 혹은 kubectl exec [pod-name] -it -- sh 커맨드로 실행 중인 pod에 접속할 수 있다. 실행 중인 pod에 접속한다. [root@kw1 ~]# kubectl exec ksimage-app -it -- bash root@ksimage-app:/app# ls -al total 12 drwxr-xr-x. 1 root root 20 Mar 29 08:51 . drwxr-xr-x. 1 root root 84 Mar 29 08:59 .. -rw-r--r--. 1 root root 268 Mar 29 06:17 Dockerfile -rw-r--r--. 1 root root 204 Mar 29 08:50 ksFlask.py -rw.. 2022. 3. 30. kubernetes pod에 파일 복사하고 다운로드 받기 kubectl exec [pod-name] -it -- bash 혹은 kubectl exec [pod-name] -it -- sh 커맨드로 실행 중인 pod에 접속할 수 있다. 로컬의 파일을 pod에 복사 kubectl cp 파일이름 pod이름:pod경로 pod의 파일을 로컬에 다운로드 ubectl cp pod이름:pod경로 파일이름 1. pod 이름을 확인한다. [root@kw1 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE ks-app 1/1 Running 0 32h ksflask-app 1/1 Running 0 29h ksimage-app 1/1 Running 0 27h 2. 실행 중인 pod에 접속한다. [root@kw1 ~]# kubectl exec .. 2022. 3. 30. kubernetes python flask ingress 설정하기 목표 : clusterip로 올린 service를 ingress를 사용해 외부에서 접근 가능하도록 할 예정 FLASK DOCKER BUILD 여기에서 만든 FLASK IMAGE를 사용해 ip/flask를 입력하면 flask web ui가 나오게 INGRESS 설정을 하려고 했는 데 자꾸 아래와 같은 에러가 발생함. 404 not found error 404 Not Found Not Found The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. 503 error 503 Service Temporarily Unavailable nginx 해결방안.. 2022. 3. 27. docker image 제거 docker images 커맨드로 다음과 같이 image list를 볼 수 있음 [root@kw1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE harbor.ks.io/ksflask v1 59db0b82b797 9 hours ago 913MB harbor.ks.io/privatetest/ksflask v1 59db0b82b797 9 hours ago 913MB python 3.9 40264b427ab5 39 hours ago 914MB k8s.gcr.io/kube-proxy v1.23.5 3c53fa8541f9 9 days ago 112MB calico/cni v3.22.1 2a8ef6985a3e 3 weeks ago 236MB calico/pod2da.. 2022. 3. 26. Dockerfile로 flask web docker image build 하는 방법 대충 이렇게 작업할 예정 1. python flask web page를 하나 만들고 2. Dockerfile 작성 3. docker build 4. harbor (private registry)에 image push 5. kubernetes에서 pod 생성 (harbor에서 이미지 pull 받기) 6. web ui 접속 테스트 1. 개발환경 셋업 python3 install하고 flask 설치 디렉토리를 하나 생성. 모든 파일을 이 디렉토리에서 만들 예정 yum install -y python3-pip pip3 install flask mkdir ~/flaskImage cd ~/flaskImage 2. python flask code 작성 ip:port로 접속하면 `kyeongseo's flask web.. 2022. 3. 23. let's encrypt의 certbot을 사용해 harbor https 적용하기 openssl을 사용해 harbor을 설치하니 web에서 접근할 때 인증서가 올바르지 않다고 주의 문구가 뜸. 무료 인증기관인 let's encrypt에서 인증서를 받아서 harbor를 설치해봄 shell에 접근 권한이 있으면 certbot 클라이언트라는 걸 쓰라고 함. snapd로 설치하는 걸 권장하니 일단 하라는 데로 해본다. sudo yum install epel-release sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap #다음 명령을 통해 snapd가 최신버전인지 확인한다. sudo snap install core; sudo snap refresh core # c.. 2022. 3. 22. 이전 1 2 3 4 5 다음 반응형