サーバー

kubernetesの応用したリソースの使い方 ~その2~

1つ前の記事では、Pod・ReplicaSet・Deploymentについて紹介してきましたが、今回はserviceとConfigMapとSecretについて紹介します。

Serviceについて

Serviceとは外部公開や名前解決に使用するものだと以前に少し触れました。
そこで、これを実現するためのサービスの種類が4つあります。

ClasterIPクラスタネットワーク内にIPアドレス公開
名前指定でPodへ到達できるようにする
NodePortClasterIPに加え、
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の初期画面が出てきたら成功です。