1

次のようなポッドを作成するための「pod.yaml」という名前の構成ファイルがあります。

apiVersion: v1 kind: Pod metadata: name: myapp labels: app: myapp spec: containers: - name: comet-app image: gcr.io/my-project/my-app:v2 ports: - containerPort: 5000

その「myapp」ポッドでサービスを実行するための「service.yaml」という名前の構成ファイル。

apiVersion: v1 kind: Service metadata: name: myapp spec: type: LoadBalancer ports: - protocol: TCP port: 80 targetPort: 5000 selector: run: myapp

私が走るとき

 kubectl apply -f pod.yaml
 kubectl apply -f service.yaml

「myapp」サービスが作成されましたが、内部 IP で Web サイトにアクセスできず、ERR_CONNECTION_TIMED_OUT が返されました。

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.xx.xxx.1 <none> 443/TCP 11d myapp LoadBalancer 10.xx.xxx.133 35.xxx.xx.172 80:30273/TCP 3s

しかし、そのサービスを削除し、次のコマンドでサービスを公開して再実行すると、すべてがうまく機能し、外部 IP で自分の Web サイトにアクセスできました。

 kubectl expose pod myapp  --type=LoadBalancer --port=80 --target-port=5000

誰かが私のためにそれを説明し、私のservice.yamlで何が悪いのか教えてもらえますか?

4

1 に答える 1