次のようなポッドを作成するための「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で何が悪いのか教えてもらえますか?