1つのポッドに3つの画像を含むYAMLファイルを作成しました(127.0.0.1を介して相互に通信する必要があります)。すべて機能しているようです。yamlファイルでノードポートを定義しました。
applications
3つのイメージを含むように定義された1つのデプロイメントがあります。
コンテナごとに1つずつ、合計3つのサービスを定義しました。そこでNodePort
、アクセスするタイプを定義しました。
そこで、ポート番号を取得するためにサービスを取得しました。
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
contacts-db 10.103.67.74 <nodes> 3306:30241/TCP 1d
front-end 10.107.226.176 <nodes> 80:32195/TCP 1d
net-core 10.108.146.87 <nodes> 5000:30245/TCP 1d
そして、ブラウザでhttp://:32195に移動すると、ロードが続行されます。接続していません。これは完全なYamlファイルです:
---
apiVersion: v1
kind: Namespace
metadata:
name: three-tier
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: applications
labels:
name: applications
namespace: three-tier
spec:
replicas: 1
template:
metadata:
labels:
name: applications
spec:
containers:
- name: contacts-db
image: mysql/mysql-server #TBD
env:
- name: MYSQL_ROOT_PASSWORD
value: quintor
- name: MYSQL_DATABASE
value: quintor #TBD
ports:
- name: mysql
containerPort: 3306
- name: front-end
image: xanvier/angularfrontend #TBD
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 80
- name: net-core
image: xanvier/contactsapi #TBD
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: contacts-db
labels:
name: contacts-db
namespace: three-tier
spec:
type: NodePort
ports:
# the port that this service should serve on
- port: 3306
targetPort: 3306
selector:
name: contacts-db
---
apiVersion: v1
kind: Service
metadata:
name: front-end
labels:
name: front-end
namespace: three-tier
spec:
type: NodePort
ports:
- port: 80
targetPort: 80 #nodePort: 30001
selector:
name: front-end
---
apiVersion: v1
kind: Service
metadata:
name: net-core
labels:
name: net-core
namespace: three-tier
spec:
type: NodePort
ports:
- port: 5000
targetPort: 5000 #nodePort: 30001
selector:
name: net-core
---
サービスのセレクターは、ポッドのラベルと一致しています。あなたの場合、定義されたセレクターは、ポッドを選択するときに何ももたらさないコンテナーを指します。
1つのセレクターを使用するか、コンテナーを異なるデプロイメント/ポッドに分割するには、サービスを再定義する必要があります。
サービス用に定義されたセレクターが機能するかどうかを確認するには、次の方法でそれらを確認できます。
kubectl get pods -l key=value
結果が空の場合、サービスも無効になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加