GCP GKE Ingressの構成チュートリアル試してみた

GCP

はじめに

外部負荷分散向け 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

コメント

タイトルとURLをコピーしました