kubernetes Controller
4154 ワード
Kubernetes Controller
K 8 SコントローラRC、RS、Deployment等は、Webサーバ等の一般的なワークロードをPod管理するためのコントローラである.Podは、サーバ、データベース、バッチ・ジョブ、デーモン・サーバなど様々な形で存在し、それらをサポートするためのコントローラです.
RC - Replication Controllers
シード数を制御するコントローラ.サムネイルはrcで、kubectlコマンドでショートヘアとして使用されます.
rc.yamlapiVersion: v1
kind: ReplicationController # rc 선언
metadata:
name: rc-nginx
spec:
replicas: 3 # pod의 개수 3개
selector:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
# nginx-pod를 3개로 유지하는 yaml 파일
kubectl create -f rc.yaml
こうして3つのpodを生成するコントローラを削除しない限り、生成されたpodは続行されます.$ kubectl delete pod --all
pod完全削除コマンドを入力すると、新しく生成された3つのpodが表示されます.
RS - ReplicaSet
RSは、RCと非常に類似して、常にReflicappardセットの動作を安定させる.指定された数のパドレプリカが常に実行されていることを確認します.ただし、カスタムバンドが必要な場合や更新が必要ない場合は、RSではなく配置を使用することをお勧めします.
rs.yamlapiVersion: apps/v1
kind: ReplicaSet # rs 선언
metadata:
name: rs-nginx
spec:
replicas: 3 # pod 3개 유지
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
$ kubectl create -f rs.yaml
これも同様に3つのpodを維持することを見ることができる.
Deployment
導入により、パイドとReplica Setの宣言的な更新が提供されます.
デプロイの予想状態を説明し、トラフィックコントローラを現在の状態から予想状態に調整して変更します.新しいreplicationセットを作成する1つ以上のストリームを定義したり、既存の複数のストリームを削除したりして、すべてのリソースを新しい複数のストリームに適用したりできます.
deployment.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-nginx
spec:
replicas: 3
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
Job
Jobで1つ以上のシードを作成し、指定した数のシードが正常に終了するまでシードの再試行を続けます.シードが正常に完了した場合、正常に完了した作業を追跡します.指定された数の正常な完了に達した場合、タスクは完了します.jobを削除すると、jobによって生成されたシードは消去され、jobを一時停止すると、ジョブが回復するまでアクティブなシードが生成されます.
job.yamlapiVersion: batch/v1
kind: Job
metadata:
name: centos-job
spec:
completions: 5 # 실행할 작업의 개수
parallelism: 2 # 동시에 실행할 pod 개수
activeDeadlineSeconds: 25
template:
spec:
containers:
- name: centos-container
image: centos:8
command: ["bash"]
args:
- "-c"
- "echo 'Hello World'; sleep 5; echo 'Bye'"
restartPolicy: Never
backoffLimit: 3
# 코드 설명
# args에 있는 작업이 완료되면 Pod는 Completed가 되면서 작업을 종료하게 된다.
# 그렇기 때문에 해당 코드는 pod를 2개씩 생성하며 생성뒤 5초가 지나면 작업이 종료되고
# 다시 2개가 실행되고 종료된 후 마지막 1개가 실행되는 yaml 코드이다.
閉鎖された5つのクレーン.
CronJob
Cron JobはLinuxコマンドcronによく似たコントローラです.
クローンキャプチャは、バックアップやEメールの送信など、定期的に繰り返されるタスクの作成に役立ちます.さらに、クローン作成者のクラスタがアイドル状態にある場合にジョブをスケジュールするなど、特定の時間内に個別のタスクをスケジュールできます.
cronjob.yamlapiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-exam
spec:
schedule: "* * * * *" # 매분마다 실행
startingDeadlineSeconds: 500 # 500초가 지나도 실행이안되면 삭제
concurrencyPolicy: Forbid # 동시실행 금지
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- echo Hello; sleep 10; echo Bye
restartPolicy: Never
$ kubectl create -f cronjob.yaml
このコマンドは1分おきに実行され、sleep 10コマンドが終了すると終了します.
Reference
この問題について(kubernetes Controller), 我々は、より多くの情報をここで見つけました
https://velog.io/@tlsalsckd13/kubernetes-Controller
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
apiVersion: v1
kind: ReplicationController # rc 선언
metadata:
name: rc-nginx
spec:
replicas: 3 # pod의 개수 3개
selector:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
# nginx-pod를 3개로 유지하는 yaml 파일
kubectl create -f rc.yaml
$ kubectl delete pod --all
apiVersion: apps/v1
kind: ReplicaSet # rs 선언
metadata:
name: rs-nginx
spec:
replicas: 3 # pod 3개 유지
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
$ kubectl create -f rs.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-nginx
spec:
replicas: 3
selector:
matchLabels:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
apiVersion: batch/v1
kind: Job
metadata:
name: centos-job
spec:
completions: 5 # 실행할 작업의 개수
parallelism: 2 # 동시에 실행할 pod 개수
activeDeadlineSeconds: 25
template:
spec:
containers:
- name: centos-container
image: centos:8
command: ["bash"]
args:
- "-c"
- "echo 'Hello World'; sleep 5; echo 'Bye'"
restartPolicy: Never
backoffLimit: 3
# 코드 설명
# args에 있는 작업이 완료되면 Pod는 Completed가 되면서 작업을 종료하게 된다.
# 그렇기 때문에 해당 코드는 pod를 2개씩 생성하며 생성뒤 5초가 지나면 작업이 종료되고
# 다시 2개가 실행되고 종료된 후 마지막 1개가 실행되는 yaml 코드이다.
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cronjob-exam
spec:
schedule: "* * * * *" # 매분마다 실행
startingDeadlineSeconds: 500 # 500초가 지나도 실행이안되면 삭제
concurrencyPolicy: Forbid # 동시실행 금지
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- echo Hello; sleep 10; echo Bye
restartPolicy: Never
$ kubectl create -f cronjob.yaml
Reference
この問題について(kubernetes Controller), 我々は、より多くの情報をここで見つけました https://velog.io/@tlsalsckd13/kubernetes-Controllerテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol