はじめに

外部負荷分散向け Ingress の構成 | Kubernetes Engine ドキュメント | Google Cloud
kubectlのターゲットの設定
Kubernetesのコマンドkubectlを使ってワークロードやサービスのデプロイを行う。
Cloudshellでkubectlを利用する際には、どのクラスタが対象なのかを設定する必要がある。
### 対象のクラスタ設定が間違っているとエラーが出る
$ kubectl apply -f hello-world-deployment.yaml
apiVersion: v1
Unable to connect to the server: x509: certificate signed by unknown authority
### 現在のクラスタ設定の確認
$ kubectl config current-context
gke_old-project-302301_asia-east1-a_test-cluster
(過去に実施した古いプロジェクトのクラスタが設定されていた)
### クラスタの再設定
$ gcloud container clusters get-credentials cluster-1 --zone us-central1-c
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cluster-1.
### 設定の確認
$ kubectl config current-context
gke_test-project-304205_us-central1-c_cluster-1
これで準備は完了。kubectlでデプロイしていく。
この際に使用するyamlファイルは公式のドキュメントページを参照。
### Deploymentのデプロイ その1
$ kubectl apply -f hello-world-deployment.yaml
### Serviceのデプロイ その1
$ kubectl apply -f hello-world-service.yaml
### Deploymentのデプロイ その2
$ kubectl apply -f hello-kubernetes-deployment.yaml
### Serviceのデプロイ その2
$ kubectl apply -f hello-kubernetes-service.yaml
### 外部負荷分散 Ingressのデプロイ
$ kubectl apply -f my-ingress.yaml
デプロイしたIngressの情報取得
$ kubectl get ingress my-ingress --output yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/backends: '{"k8s-be-30490--d110d74c8f48f149":"HEALTHY","k8s1-d110d74c-default-hello-kubernetes-80-6cdcfb35":"HEALTHY","k8s1-d110d74c-default-hello-world-60000-2e84b82e":"HEALTHY"}'
ingress.kubernetes.io/forwarding-rule: k8s2-fr-i0i19bdw-default-my-ingress-loy9csxz
ingress.kubernetes.io/target-proxy: k8s2-tp-i0i19bdw-default-my-ingress-loy9csxz
ingress.kubernetes.io/url-map: k8s2-um-i0i19bdw-default-my-ingress-loy9csxz
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.k8s.io/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"gce"},"name":"my-ingress","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"serviceName":"hello-world","servicePort":60000},"path":"/*"},{"backend":{"serviceName":"hello-kubernetes","servicePort":80},"path":"/kube"}]}}]}}
kubernetes.io/ingress.class: gce
creationTimestamp: "2021-02-17T02:14:33Z"
finalizers:
- networking.gke.io/ingress-finalizer-V2
generation: 1
name: my-ingress
namespace: default
resourceVersion: "8371"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/my-ingress
uid: a47ae319-6940-400d-afba-42569ec07841
spec:
rules:
- http:
paths:
- backend:
serviceName: hello-world
servicePort: 60000
path: /*
- backend:
serviceName: hello-kubernetes
servicePort: 80
path: /kube
status:
loadBalancer:
ingress:
- ip: 34.120.108.6


コメント