Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GKE+Argo workflow

Hiroki Matsumoto
January 24, 2020
510

GKE+Argo workflow

Hiroki Matsumoto

January 24, 2020
Tweet

Transcript

  1. Kubernetes Sapporo for Beginners 自己紹介 松本 宏紀 ( まつもと ひろき

    ) • Kubernetes Sapporo for Beginners主催者。 • チーフ・アーキテクト • オフショアラボ・チームリーダー • デブサミ2019「Spring Bootでマイクロサービス作って苦労したお話」発表。 • Google Cloud Next ‘19 in Tokyo 「大規模エンタープライズ システムをマイクロ サービスで刷新。その開発プロセス再定義まで 道のり」登壇 Twitter:@hirokimatsumo13
  2. Kubernetes Sapporo for Beginners Argo Workflow https://github.com/argoproj/argo • Argo Workflow

    Kubernetes上で動作するContainer NativeなWorkflow Engine。 Custom Resource = Workflowでワークフローを管理できる。 • Argo CD GitOpsでCD(Continuous Delivery)するためのツール。 • Argo Events イベント駆動での開発をするためのイベント管理ツール。 • Argo Rollouts Blue Green Deployments、Canary Releaseするためのツール。
  3. Kubernetes Sapporo for Beginners Customize Argo Workflow Web UIが辛い。 •

    namespace毎に、Workflowをfilterしたい。 • 日時の範囲で絞り込みを行いたい。 • Workflowと各種イベントの発生を、追跡して見れるようにしたい。 • ログはPodのログから取っているので、 Nodeの水平オートスケーラーを利用していると見れなくなってしま う。
  4. Kubernetes Sapporo for Beginners Customize Argo Workflow Web UIが辛い。 •

    namespace毎に、Workflowをfilterしたい。 • 日時の範囲で絞り込みを行いたい。 • Workflowと各種イベントの発生を、追跡して見れるようにしたい。 • ログはPodのログから取っているので、 Nodeの水平オートスケーラーを利用していると見れなくなってしま う。 → 独自でUIを作成。(kubernetesのworkflow、podのAPIをcallして、UIを表示するように改良。 → ログ情報は、BigQueryにexportされたログを表示するように改良。
  5. Kubernetes Sapporo for Beginners How to Use 負荷状況に合わせて、 Nodeを水平スケールアウト するようにしている。

    Podの起動要求が多くなり、物理的 なリソースが足りなくなると、Node が追加される。
  6. Kubernetes Sapporo for Beginners 問題1 Javaで動作しているアプリケーションで、偶発的に下記エラーが発生する。 Caused by: java.io.IOException: Unexpected

    Error code 500 trying to get security access token from Compute Engine metadata for the default service account: GKE Metadata Server: Internal Server Error
  7. Kubernetes Sapporo for Beginners 再発する 数週間後…Javaで動作しているアプリケーションで、偶発的に下記エラーが発生する。 Caused by: java.io.IOException: Unexpected

    Error code 500 trying to get security access token from Compute Engine metadata for the default service account: GKE Metadata Server: Internal Server Error
  8. Kubernetes Sapporo for Beginners 問題2 各Nodeに存在するgke-metadata-serverが落ちる。 workflow-pod-xxx workflow-pod-yyy gke-metadata-server-xxx gke-metadata-server

    Workload Identityを有効にしている場合、 gke-metadata-serverを介して、K8Sの ServiceAccountからGCPの権限確認を行なっている。