파이썬 코드에서 kubernetes 포드를 만드는 방법
6982 단어 파이썬Flaskkubernetes
소개
kubernetes에서 pod를 만들려면 먼저 pod의 yaml 파일을 만들고 만든 yaml 파일을 명령으로 apply하여 만들 수 있지만 명령을 사용하지 않고 python 코드에서 pod를 만들고 싶습니다. 조사한 결과 기사가 보이지 않고 프로그램을 쓰는데 고생했기 때문에 공유해 둡니다.
환경
pod의 기본 작성 방법
우선 기본적인 pod가 만들 수 있는지 시험해 본다. pod를 작성하는 yaml 파일은 무엇이든 좋은데, 일단 간단한 pod.yaml 파일을 작성한다.
$ vim pod.yaml
: set paste로 copipe하면
pod.yaml# Podを記述する時のきまり
apiVersion: v1
kind: Pod
# Podの名前やラベルをはじめとする細かい情報
metadata:
name: myapp-pod # Podに名前をつける
labels:
app: myapp # ラベル app -> myapp をつける
# Podに配置するコンテナ本体の情報
spec:
containers:
- name: demo-container # コンテナに名前をつける
image: nginx # コンテナ名(Docker Hubの名前と一致)
ports:
- containerPort: 80 # 80番ポートを使う
pod.yaml을 apply하여 pod를 작성해 보자.
$ kubectl apply -f pod.yaml
pod/myapp-pod created
pod가 생겼는지 확인해 본다.
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-pod 1/1 Running 0 34s
만든 pod는 사용이 끝났으므로 지워 둔다.
$ kubectl delete -f pod.yaml
pod "myapp-pod" deleted
$ kubectl get pod
No resources found in c0118272 namespace.
파이썬에서 생성
필요한 것을 설치합니다.
$ pip3 install flask
$ pip3 install kubernetes
pod.yaml과 같은 디렉토리에 podcreate.py라는 이름으로 pod를 만드는 파이썬 프로그램을 만듭니다. namespace의 곳은 자신의 namespace의 이름으로 변경한다. 기본은 default가 된다.
$ vim podcreate.py
podcreate.pyfrom flask import Flask
from flask import request
from kubernetes import client, config, watch
import yaml
app = Flask(__name__)
@app.route('/')
def pod_create():
config.load_kube_config()
with open("pod.yaml", "r") as f:
pod = yaml.safe_load(f)
k8s_apps_v1 = client.CoreV1Api()
resp = k8s_apps_v1.create_namespaced_pod(body=pod, namespace="c0118272")
print("pod created. status='%s'" % resp.metadata.name)
return "pod created. status='%s'" % resp.metadata.name
if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)
파일의 위치 관계를 확인합니다.
$ ls
podcreate.py pod.yaml
flask로 썼으므로 브라우저에 표시하여 실행해 본다.
$ export FLASK_APP=podcreate.py
$ flask run --host=0.0.0.0
* Serving Flask app "podcreate.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
*
브라우저에서 실행해 본다. url은 로컬라면 htp://0.0.0.0:5000 로 로컬이 아니면 포트는 5000으로 IP 주소가 실행 환경마다 다르다.
위 이미지처럼되면 성공!
명령으로 확인해 봅니다.
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-pod 1/1 Running 0 3m11s
pod가 되어 있으면 하고 싶은 것은 완료! !
결론
kubernetes의 api를 사용하고 있습니다만 어렵고 잘 모르기 때문에 응용 방법은 각각 조사해 보세요!
좋은 연구 생활을 ~
Reference
이 문제에 관하여(파이썬 코드에서 kubernetes 포드를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/C0118272/items/ecedc436719949b73c82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ vim pod.yaml
# Podを記述する時のきまり
apiVersion: v1
kind: Pod
# Podの名前やラベルをはじめとする細かい情報
metadata:
name: myapp-pod # Podに名前をつける
labels:
app: myapp # ラベル app -> myapp をつける
# Podに配置するコンテナ本体の情報
spec:
containers:
- name: demo-container # コンテナに名前をつける
image: nginx # コンテナ名(Docker Hubの名前と一致)
ports:
- containerPort: 80 # 80番ポートを使う
$ kubectl apply -f pod.yaml
pod/myapp-pod created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-pod 1/1 Running 0 34s
$ kubectl delete -f pod.yaml
pod "myapp-pod" deleted
$ kubectl get pod
No resources found in c0118272 namespace.
필요한 것을 설치합니다.
$ pip3 install flask
$ pip3 install kubernetes
pod.yaml과 같은 디렉토리에 podcreate.py라는 이름으로 pod를 만드는 파이썬 프로그램을 만듭니다. namespace의 곳은 자신의 namespace의 이름으로 변경한다. 기본은 default가 된다.
$ vim podcreate.py
podcreate.py
from flask import Flask
from flask import request
from kubernetes import client, config, watch
import yaml
app = Flask(__name__)
@app.route('/')
def pod_create():
config.load_kube_config()
with open("pod.yaml", "r") as f:
pod = yaml.safe_load(f)
k8s_apps_v1 = client.CoreV1Api()
resp = k8s_apps_v1.create_namespaced_pod(body=pod, namespace="c0118272")
print("pod created. status='%s'" % resp.metadata.name)
return "pod created. status='%s'" % resp.metadata.name
if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)
파일의 위치 관계를 확인합니다.
$ ls
podcreate.py pod.yaml
flask로 썼으므로 브라우저에 표시하여 실행해 본다.
$ export FLASK_APP=podcreate.py
$ flask run --host=0.0.0.0
* Serving Flask app "podcreate.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
*
브라우저에서 실행해 본다. url은 로컬라면 htp://0.0.0.0:5000 로 로컬이 아니면 포트는 5000으로 IP 주소가 실행 환경마다 다르다.
위 이미지처럼되면 성공!
명령으로 확인해 봅니다.
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp-pod 1/1 Running 0 3m11s
pod가 되어 있으면 하고 싶은 것은 완료! !
결론
kubernetes의 api를 사용하고 있습니다만 어렵고 잘 모르기 때문에 응용 방법은 각각 조사해 보세요!
좋은 연구 생활을 ~
Reference
이 문제에 관하여(파이썬 코드에서 kubernetes 포드를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/C0118272/items/ecedc436719949b73c82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(파이썬 코드에서 kubernetes 포드를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/C0118272/items/ecedc436719949b73c82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)