manifest.ymlに記述されているPodが動いてないから、Service経由でNginxコンテナに対してアクセスできるように修正してください、という内容。
何はともあれmanifest.ymlを確認。
特にピンとこなかったので詳細を見ました。ラベルの対応づけがおかしい?
1$ kubectl describe pod -l app=nginx
21 node(s) didn't match Pod's node affinity/selector
確認したところラベル付けされていないのでこれが原因そうです。
1admin@ip-10-1-13-96:~$ kubectl get nodes --show-labels
2NAME STATUS ROLES AGE VERSION LABELS
3i-02f8e6680f7d5e616 NotReady control-plane,master 566d v1.28.5+k3s1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=k3s,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=i-02f8e6680f7d5e616,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=true,node-role.kubernetes.io/master=true,node.kubernetes.io/instance-type=k3s
4node1 Ready control-plane,master 566d v1.28.5+k3s1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=k3s,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=true,node-role.kubernetes.io/master=true,node.kubernetes.io/instance-type=k3s
コメントアウトしてPodを削除してapply。
1$ kubectl apply -f manifest.yml
まだうまくいかない。
ログを見るとこんな感じのが出ています。メモリが足りていない感じがします。
1Warning FailedScheduling 21s default-scheduler 0/2 nodes are available: 1 Insufficient memory, 1 node(s) had untolerated taint {node.kubernetes.io/unreachable: }. preemption: 0/2 nodes are available: 1 No preemption victims found for incoming pod, 1 Preemption is not helpful for scheduling..
manifest.ymlファイルを見るとPodの要求リソースが高そうです。2000Miから256Miに下げてみます。
1resources:
2 limits:
3 memory: 512Mi
4 cpu: 100m
5 requests:
6 memory: 512Mi
7 cpu: 100m
runningになりました。curlコマンドを叩くとnginxからレスポンスが返ってきました。
1admin@ip-10-1-13-96:~$ kubectl get pods -l app=nginx
2NAME READY STATUS RESTARTS AGE
3nginx-deployment-69b6c48df9-cd7gn 1/1 Running 0 7s