Kubernetes Serviceマニフェスト

参考文献: Kubernetesマイクロサービス開発の実践 (早川博 著)


https://cstoku.dev/posts/2018/k8sdojo-09/


kubectl explain service

kubectl api-resources


-- 1. Deployment作成


cat <<-'EOF' > deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy01
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        
EOF

kubectl apply -f deploy.yaml

kubectl get deploy,po


kubectl delete -f deploy.yaml


-- 2. Service作成(NodePort)

 

cat <<-'EOF' > svc01.yaml
apiVersion: v1
kind: Service
metadata:
  name: svc01
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80
  type: NodePort
EOF

kubectl apply -f svc01.yaml

kubectl get svc

kubectl delete -f svc01.yaml


curl http://192.168.137.162:30750

→ 「Welcome to nginx!」の表示を確認
クラスタ外からアクセス可能

-- 3. Service作成(ClusterIP)

 

cat <<-'EOF' > svc02.yaml
apiVersion: v1
kind: Service
metadata:
  name: svc02
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80
  type: ClusterIP
EOF

kubectl apply -f svc02.yaml

kubectl get svc

kubectl delete -f svc02.yaml

curl http://10.101.78.148:8080

→ 「Welcome to nginx!」の表示を確認
クラスタ外からアクセス不可