参考文献: 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!」の表示を確認
※クラスタ外からアクセス不可