1 はじめに
これは非常に単純で、単なる yaml
ファイルです。
2 springboot のワンクリック デプロイメント
2.1 yaml ファイルの準備
イメージ ファイルの準備ができたら、それを kubernetes# にデプロイします。 ## とても簡単です。
yaml 形式のファイルが必要なだけです。このファイルには、
deployment、
service、
ingress など。定義は次のとおりです:
apiversion: apps/v1 kind: deployment metadata: name: pkslow-springboot-deployment spec: selector: matchlabels: app: springboot replicas: 2 template: metadata: labels: app: springboot spec: containers: - name: springboot image: pkslow/springboot-mongo:0.0.6 ports: - containerport: 8080 --- apiversion: v1 kind: service metadata: labels: app: springboot name: pkslow-springboot-service spec: ports: - port: 8080 name: springboot-service protocol: tcp targetport: 8080 nodeport: 30080 selector: app: springboot type: nodeport
kind: タイプ (
deployment、
service、
pod、## を含む) #ingress
など、非常に豊富です;
: 名前、ラベルなどのコンポーネント情報を定義するために使用されます; #labels
label は一意性を提供しないため、組み合わせを使用して選択できます。
nodeport
nodeports、
loadbalancer、
ingress の 3 つの方法があります。ここでは
nodeports が使用されます。デフォルトのポート範囲は
[3000-32767] です。他の範囲が必要な場合は、関連するパラメータを変更する必要があることに注意してください。
2.2 kubectl コマンドによるデプロイメント
yaml
ファイルの準備ができたら、次のコマンドを使用してデプロイできます:$ kubectl create -f pksow-springboot.yaml deployment.apps/pkslow-springboot-deployment created service/pkslow-springboot-service created
コンソールの確認ログには、
deployment と service が正常に作成されたことが示されています。
ダッシュボードを次のように表示します:
web
サービスにアクセスします:$ kubectl get deployment name ready up-to-date available age pkslow-springboot-deployment 2/2 2 2 8m2s $ kubectl get service name type cluster-ip external-ip port(s) age kubernetes clusterip 10.96.0.1 <none> 443/tcp 10m pkslow-springboot-service nodeport 10.102.218.119 <none> 8080:30080/tcp 8m7s $ kubectl get pod name ready status restarts age pkslow-springboot-deployment-68dffc6795-874tp 1/1 running 0 8m15s pkslow-springboot-deployment-68dffc6795-89xww 1/1 running 0 8m15s
が
kubernetes に正常に公開されました。 2.3 ポッドを強制終了してみますか?
最小の管理要素はコンテナではなく、
pod です。
pod を削除して、何が起こるか見てみましょう。
$ kubectl delete pod pkslow-springboot-deployment-68dffc6795-89xww pod "pkslow-springboot-deployment-68dffc6795-89xww" deleted $ kubectl get pod name ready status restarts age pkslow-springboot-deployment-68dffc6795-874tp 1/1 running 0 13m pkslow-springboot-deployment-68dffc6795-gpw67 1/1 running 0 46s
別の pod
を削除すると、新しい
が自動的に生成され、サービス全体の高可用性が向上することがわかります。 2.4 コンテナを強制終了してみますか?
コンテナ インスタンスを強制終了すると何が起こるかを見てみましょう。
$ docker ps $ docker rm -f 57869688a226 57869688a226 $ docker ps
実験後、コンテナを強制終了すると、コンテナ インスタンスが自動的に再生成されます。
podは変更されず、再生成されません。
2.5 pod の急速な拡張ユーザーのリクエストが急増し、サービスが対応できなくなった場合、
の数を増やす必要があります。
yaml 構成ファイルの replicas
を変更し、replicas: 4
に更新するだけです。次に、次のコマンドを実行します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ kubectl apply -f pksow-springboot.yaml</pre><div class="contentsignin">ログイン後にコピー</div></div>
View dashboard
. 元の 2 つの
に基づいて、さらに 2 つが追加されています。
3 nginx のワンクリック デプロイメント
springboot イメージがない場合は、公式
nginx ミラー、yaml
ファイルを使用できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">apiversion: apps/v1
kind: deployment
metadata:
name: nginx-deployment
spec:
selector:
matchlabels:
app: nginx
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.0
ports:
- containerport: 80
---
apiversion: v1
kind: service
metadata:
labels:
app: nginx
name: nginx-service
spec:
ports:
- port: 80
name: nginx-service1
protocol: tcp
targetport: 80
nodeport: 30000
- port: 81
name: nginx-service2
protocol: tcp
targetport: 80
nodeport: 30001
selector:
app: nginx
type: nodeport</pre><div class="contentsignin">ログイン後にコピー</div></div>
デプロイメント コマンドを実行します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:bash;">$ kubectl apply -f nginx-deployment-scale.yaml
deployment.apps/nginx-deployment created
service/nginx-service created</pre><div class="contentsignin">ログイン後にコピー</div></div>View </p>dashboard<p> 次のように: </p>
<p><code>
以上がKubernetes を使用して Springboot または Nginx をデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。