1つ前の記事では、Pod・ReplicaSet・Deploymentについて紹介してきましたが、今回はserviceとConfigMapとSecretについて紹介します。
Serviceについて
Serviceとは外部公開や名前解決に使用するものだと以前に少し触れました。
そこで、これを実現するためのサービスの種類が4つあります。
ClasterIP | クラスタネットワーク内にIPアドレス公開 名前指定でPodへ到達できるようにする |
NodePort | ClasterIPに加え、 Nodeのポートにポートマッピングして受け付けられるようにする |
LoadBalancer | クラウドプロバイダー(AWS,GCPなど)の ロードバランサーを利用してサービスを公開する |
ExternalName | 外部サービスに接続 |
ここからは具体的なService作成の手順をみていきます。
1、NordPortのServiceマニフェストファイル作成
2、リソース作成
3、ブラウザからアクセスして動作確認
コードを書く前に注意する点としては、Servieの動作を確認するには、転送先コンテナ(Pod, ReplicasSet, Deploymentなど)が必要になります。
service.yml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: web
env: study
spec:
containers:
- name: nginx
image: nginx:1.17.2-alpine
---
apiVersion: v1
kind: Service
metadata:
name: web-svc
spec:
type: NodePort
selector:
app: web
env: study
ports:
- port: 80
targetPort: 80
nodePort: 30000
PodのlabelsとServiceのselectorが一緒になるように注意してください。
リソースを作成し、確認してみます。
kubectl apply -f service.yml
kubectl get all
Nodeportが立ち上がっているのが確認できたら、仮想サーバーのIPに30000番のportを加えてアクセスしてみてください。
nginxの初期画面が出てきたら成功です。