K8s의 Django(섹션 3: Kubernetes에서 실행)
7207 단어 djangoubuntukubernetesdocker
마지막 부분에서, 우리는 Django 프로그램을 용기화하고, Docker에서 그것을 실행하여 정상적으로 작동하도록 할 수 있습니다.이 부분에서 Kubernetes에 이 이미지를 불러오는 방법을 보여 주고 배치를 추가하며 PC와 네트워크에서 연결하는 방법을 보여 드리겠습니다.그럼 가자.
Kubernetes에 그림 추가하기
실제 환경을 모의하기 위해 MiniKube는 자신의 Docker 등록표를 가지고 있기 때문에 이 등록표에 이미지를 올려서 용기를 시작할 수 있도록 해야 합니다. 두 가지 방법이 있습니다.
디스크의 docker save 명령을 사용하여 로컬 등록표에서 이미지를 다운로드하고 docker load 명령을 통해 미니쿠버의 docker 등록표에 불러옵니다
또는
docker build
명령을 사용하여 미니쿠브의 등록표에 이미지를 다시 구축하면 더욱 빠르고 쉽다. 왜냐하면 우리는 매번 전체 이미지를 저장하거나 불러오지 않기 때문이다.eval $(minikube docker-env)
따라서 미니쿠버 등록표에 따라 이미지를 구축하려면 아래 명령을 실행하십시오섹션
~/django-on-k8s$ eval $(minikube docker-env)
~/django-on-k8s$ docker build -t django-example:v1.0 .
마지막으로 실행을 통해 docker images
다음 그림과 비슷한 내용을 표시합니다현재 Google은 Google 프로그램을 Kubernetes에 배치해서 어떻게 실현하는지 보여 드리려고 합니다.
쿠베르네트스에 배치
Kubernetes에서 가장 작은 대상은'Pod'이다. 이것은 함께 실행되는 용기 집합이고 하나 이상의 Pod(같은 용기 이미지)는 부본 집합으로 배치를 형성한다. 따라서 우리는 하나의 배치를 만들 것이다. 그 중 하나는 부본 계수가 1이고 우리는 우리의 이미지를 용기 이미지로 사용할 것이다.
Dell은
django-example_initial.yaml
를 사용하여 이러한 이점을 실현합니다.apiVersion: apps/v1
kind: Deployment
metadata:
name: django-example
labels:
app: django-example
spec:
replicas: 1
selector:
matchLabels:
app: django-example
template:
metadata:
labels:
app: django-example
spec:
containers:
- name: web-app
image: django-example:v1.0
ports:
- containerPort: 80
그래서 우리는 복제 세트와 용기 django-example
, 우리의 web-app
이미지를 바탕으로 80 포트를 내보내는 배치 django-example
를 만들었다.따라서
kubectl apply -f django-example_initial.yaml
너는 아래의 출력을 받아야 한다그리고 배치 상태를 점검해 봅시다.
kubectl get deploy
다음 그림과 같이 배치가 준비된 것을 보실 수 있습니다.애플리케이션에 연결
현재 배치가 끝났습니다. 웹 응용 프로그램으로 내비게이션을 해야 합니다. 두 가지가 필요합니다.
1. 공개 배포
Kubernetes에 공개 배치를 알려야 합니다. 그러면 저희 네트워크에서 상호작용을 할 수 있고, 포트가yaml 파일에서 알고 있기 때문에 아래 명령을 통해 간단하게 실현할 수 있습니다.
kubectl expose deployment django-example
2. 크레인 IP 획득
공개 배포 후 IP를 통해
kubectl get services
IP는현재, 새로운 브라우저 창을 열고 http://IP/ 로 이동하면 Pod에 연결할 수 없습니다. 미니쿠브 네트워크에 루트가 없기 때문에 터널을 열어야 합니다. 다음 절과 같습니다.
3. 터널 열기
미니 kube의 컨테이너는 docker 컨테이너 아래에서 운행하기 때문에, 그 네트워크는 CIDR이기 때문에, 우리는 그것들에 도달할 수 있도록 노선을 변경해야 한다. 이것은 아래 명령을 통해 완성할 수 있다
minikube tunnel
주의: sudoer 계정이 필요합니다. 이 명령은 계속 실행될 것입니다. 아래와 같습니다.따라서 브라우저 창에 들어가기 전에 열고 새로 고치면 프로그램의 로그인 페이지를 볼 수 있고 다음과 같이 로그인할 수 있습니다.
장점: 인터넷 공개 서비스
이것은 Mini Kube에서 작동하지 않습니다. Kubernetes는 하나의 용기 아래에서 PC에서 작동하지만, 실제 생산 환경에서 Kubernetes는 네트워크에서 접근할 수 있는 서버에서 실행될 것입니다. 따라서 서비스를 네트워크에 공개하려면 다음과 같은 'NodePort' 를 사용할 수 있습니다.
kubectl expose deployment django-example --type NodePort
를 사용하여 서비스 목록에서 포트 가져오기kubectl get service
출력은 다음과 같다.Minikube에서 실행할 수 있습니다
$ minikube ip
192.168.49.2
새 브라우저 창을 열고http://192.168.49.2:31394
아래와 같은 웹 응용 프로그램에 접근할 수 있습니다.주: 실제 환경을 모의하는 터널은 필요 없어요.
우리가 만든 것을 치우다
kubectl delete service django-example
kubectl delete deploy django-example
마무리
현재 Google 웹 응용 프로그램이 Kubernetes에서 실행되고 있습니다. 접근할 수 있습니다. 그러나 웹 응용 프로그램에 사용자를 추가하기 시작하면 용기가 실패하고 데이터베이스가 분실됩니다. 이것은 웹 응용 프로그램에 있어서 받아들일 수 없는 것입니다. 다음 부분은 용기 리셋 사이에 데이터베이스 파일을 오래 저장하는 방법을 보여 드리겠습니다. 따라서 계속 관심을 가져 주십시오.
Reference
이 문제에 관하여(K8s의 Django(섹션 3: Kubernetes에서 실행)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mkalioby/django-on-k8s-part-iii-running-on-kubernetes-2m91텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)