Enjoy Architecting

Twitter: @taisho6339

Kubernetes

高負荷環境でFluentdを安定運用するための3つの観点

本記事について Fluentdは機能としてはシンプルですが、 高負荷環境で安定的に運用するためにはある程度の知識が求められます。 そこで、本記事ではそれなりにログ流量の高い環境下で私が考慮した観点をまとめました。 本記事では、KubernetesでFluentdの信…

最短で理解して運用するGrafana Loki

本記事について Lokiについてまったく知識のない状態の人にとって、1からキャッチアップしていくのは とても大変なことです。 特にLokiはマイクロサービスで構成されているため、何を知るべきなのかの全体像が見えにくいと思っています。 そのため、Lokiをま…

Fluentdのバッファリングで抑えておくべき大事なポイント

概要 Fluentdで障害設計をする上でバッファリングの概念は切っても切り離せません。 本記事では、ドキュメントだけでは拾いきれないものも踏まえ、 Fluentdのバッファリングで抑えておくべき情報を体系的にまとめます。 バッファリングとは? Fluentdではロ…

KubernetesでFluentdの信頼性を担保するための3つの観点

概要 GKEなどを使えば自動的に標準出力のログが集計&集約され、Cloud Loggingなどを通して可視化されますが、 オンプレミス環境でKubernetesクラスタを構築する場合そうはいきません。 また単純なアプリケーションログの集計以外にも、 Kubernetesを使ってロ…

マルチクラスタKubernetes 3つのパターンと実運用事例

この記事はKubernetes Advent Calendarの7日目の記事です。 今回は、Kubernetesのマルチクラスタ化についての考察記事を書きます。 マルチクラスタの定義 マルチクラスタと一重にいっても色々とありますが、本記事では、「複数のKubernetesクラスタを並列に…

Kubernetesの負荷試験で絶対に担保したい13のチェックリスト

概要 ここ最近、Kubernetesクラスタを本番運用するにあたって負荷試験を行ってきました。 Kubernetesクラスタに乗せるアプリケーションの負荷試験は、通常の負荷試験でよく用いられる観点に加えて、クラスタ特有の観点も確認していく必要があります。 適切に…

【Kubernetes】GKEのContainer Native LoadbalancingのPodのTerminationの注意点

概要 最近のGKEはContainer Nativeなロードバランシングを推奨しています。 これは、Alias IP, NEGという仕組みを使って、GCPのロードバランサーがPodのIPに直接ルーティングすることができます。 しかし、適切にPodを設定していない場合、クラスタのメンテ…

【Kubernetes】マルチクラスタの最適なヘルスチェックとFailOverについての考察

概要 ここ最近関わっているプロジェクトで、 クラスタを安全にBlue/Greenで更新するためにマルチクラスタ構成にして冗長化する案件を推進していました。 クラスタの安全な更新とクラスタのHealth Check、Fail Overは切っても切れない関係にあります。 そこで…

Istioはいかにしてサービス間通信のセキュリティを担保しているのか?

この記事について この記事では、Istioがどのような考え方でサービス間通信のセキュリティを担保し、 どのように担保しているかを概観レベルで整理する。 サービス間通信で担保したいものと従来のセキュリティモデル サービス間通信として担保したいものとし…

【ArgoCD】最小ではじめるプロジェクトごとのユーザ権限管理

本記事の概要 ArgoCDをクラスタにインストールするとまずadminユーザが作られます。 しかし、adminクラスタは権限が強く(いわゆるsuperuser)、自由にアプリケーションを更新したり削除したりできてしまいます。 マイクロサービスなどによってサービスごとに…

Istioで割合でTraffic Managementするときにユーザごとにセッションを固定する

解決したい課題 Istioでweightによってサービスのバージョンを切り替えているとき、 リクエストの割合ベースで切り替えているだけなので、 同一ユーザでも異なるバージョンが表示されてしまう。 ユーザには少なくとも一定期間は同じバージョンを見せたいケー…

Istio + Argo Rolloutとカナリアリリース

本記事について Argo Rolloutを導入すると、様々なデプロイ戦略を実践することができる。 ただ少し実際の運用イメージが見えづらかったので整理してみる。 Argo Rolloutについての概要 Argo Rolloutとは通常のk8sのDeploymentに加え、カナリアリリースなどの…

【GCP Anthos】 Fail Overの挙動から最適なマルチクラスタ構成を考える

記事の目的 前回の記事でIngress For Anthosを用いてRegionにまたがったKubernetsのマルチクラスタを構築した。 今回は1段深く掘り下げて、クラスタ内に複数のフロントサービスを持つケースを考える。 このケースでAnthosで構築したマルチクラスタのFail Ov…

【GCP Anthos】Anthos Service Mesh + Ingress For Anthosを組み合わせたk8sのマルチクラスタを構築する

この記事について 前回の記事でIngress For Anthosを使ったマルチクラスタによるk8sの冗長化について触れた。 今回はManagedなIstioを提供するAnthos Service Meshも取り入れ、 サービスメッシュを導入したマルチクラスタを実際に構築してみる。 Anthos Serv…

【GCP Anthos】 Regionに跨って冗長化したKubernetsのマルチクラスタをロードバランシングする

Anthosとは? アプリケーションを、OSSをベースにモナタイゼーションするための統括的な機能を提供するプラットフォーム。 モナタイゼーションとは? マイクロサービス化 インフラとアプリケーションの疎結合化 サーバレス 自動化 なるべくManagedへ Anthos…

CloudEndpointsを使って手軽に安全にGKE上のAPIを公開する

導入 GKEにElasticsearchなどのクラスタを載せて運用するとき、 大抵はファイアウォールなどで特定のノードやネットワークからしかアクセスできないようにすると思う。 だがそれだけでは特定のAPIはアクセスを禁止し、特定のAPIだけ公開したいといったニーズ…