Kekeの日記

エンジニア、読書なんでも

kubernetes

Easy CI/CDらしいServerlessなJenkins XでPRでJobをキックする

Jenkins X 本記事 本記事では過去に書いたSpinnakerによる宣言的継続的デリバリー(DCD)の経験から、「Easy CI/CD」とうたうJenkin Xを使用して使い勝手などを検証しようと思います。 そのSpinnakerの記事が以下のリンクです。 www.1915keke.com Jenkins自体…

3人で決済プラットフォームを2日で作り上げたSRE的戦略の話

アーキテクチャの略図 動機 個人的に最もSRE的なバリューを作ることができて、チームとしての生産性も最も高かったのが、決済プラットフォームの開発でした。 「制約の中では自由である」のが社会的な自由であり、その中で幸福の契機を探しているのが私たち…

Kubernetes Downward APIを使ってDogStatsDにカスタムメトリクスを送れるようになる!

動機 最近、比較的モダンなモニタリングに関する本が出ていたので読みました。 入門 監視 ―モダンなモニタリングのためのデザインパターン作者: Mike Julian,松浦隼人出版社/メーカー: オライリージャパン発売日: 2019/01/17メディア: 単行本(ソフトカバー…

Argo CDによってGKEでGitOpsをする

はじめに 最近読んだ鎌倉時代の歌人、鴨長明の『方丈記』にも ゆく河の流れは絶えずして、しかももとの水にあらず。 とありますが、私たちのソフトウェアも然りです。 毎日更新され、デプロイされ、時に不可逆に破壊され。そして、ちぐはぐな形に落ち着くま…

Freenomの無料ドメインでcert-managerを使って、GKEのIngressをHTTPS(TLS)対応する

本記事 本記事ではGKE上でホストしているアプリケーションサーバーのが使っているIngressに対してHTTPS対応をしたいと思います。 背景としては、実はハッカソン用で開発をしていたのですが決済プラットフォームを使うためHTTPSに対応しなければなりませんで…

Dreddを使ってHTTP APIサーバーとKubernetes Serviceのテストをする

本記事 今回はAPIテストツールであるDreddを使ってHTTP APIサーバーのテストおよびKubernetes Serviceのテストをしようと思います。 テスト対象 今回はStripeSDKを使って構築した決済APIをテストしていきます。

HelmからKustomizeに乗り換える!軽量で、シンプルで、使いやすい!

kustomizeを使ってみる kustomizeとは YAMLファイルを再利用可能で設定変更のしやすい宣言的管理をします。

データベースクラスタリングシステムVitess

本記事 本記事ではKubenetes上にデータベースクラスタリングシステムの入門として導入して、使い勝手や操作方法、運用方法などの学習します。

KubernetesのDownwardAPI

本記事 本記事はKuberenetesのDownward APIを使ってみて学習します。

KialiでIstio Service Meshをよりリッチにする

本記事 Adventカレンダーなどではなくて、軽くメモをとった感じなので、リッチな情報がほしかったら公式ドキュメントなどをお読みください。 この記事では、Istioのサービスメッシュに併せてさらなるフィードバックを与えてくれるKialiというものを試してい…

IstioでKubernetesのサービスメッシュを構築してみる

本記事 どうやらKubernetesクラスタへのHTTPリクエストのレスポンスタイムがスパイクするということで引き続き原因を探っています。 以前の記事で同じくサービスメッシュを構築できるLinkerdというものを検証してみました。 その記事が以下のものとなります…

LocustをKubernetes上で構築して分散負荷テストして、Linkerdでサービスメッシュのデバッグを行う

動機 実はLocustは10ヶ月以上前に使ったことがあります。 しかし、今回はサービスメッシュをLinkerdで構築して、マイクロサービス間のレイテンシなどを計測していこうと思いました。

Linkerdでサービスメッシュを構築してKubernetesクラスタのメトリクスを見る

動機 ひとり趣味で作っている機械学習サービスをマイクロサービス化してGoogle Kubernetes Engine(GKE)で構築しています。 しかし、外部からアクセスした時にレスポンスタイムが突発的にスパイクすることがわかりました。 Grafanaで可視化すると以下のようで…

Stackdriver Profiler(Cloud Profiler)を使ってKubernetes上のサーバー動的解析を行う

本記事 本記事ではKubernetesにStackdriver Profile(現時点ではBeta版)を使ってみて、自分のコードの動的解析を行ってみます。 それを通してStackdriver ProfileのGUIの操作方法などを習得したいと思います。

JsonPathを変幻自在に操るKubernetes使いになろう

JSONPathとは 何かしらCLIツールでコマンドを実行した時にフォーマットをするようなものである。 たとえば以下のように実行する kubectl get pods -o json すると生のJSONが返ってくるので、このjsonにpathを指定することになる。 これに対してjsonpathを指…

Kubernetesで安全にマシンタイプを変更するDrainとPodDisruptBudget

動機 プロジェクト開始のときは、machine typeはn1-standard-1でした。 しかし、いろんなデプロイメントをするとクラスタのスペックが足りなくなりました。 今回はそのようなときに使える、安全にNodeのマシンタイプを移行するソリューションを記事にしまし…

KubernetesのNode AffinityとInternal Pod Affinityを使ってPodを高度スケジューリングする

はじめに Kubernetesには高度スケジューリングを行えるAPIが用意されていあるので、今回はまとめようと思います。 どれもlabelを使って認識するのでその事前知識が必要です。

アドテクコンペに参加!わずか0.1秒の過酷な広告の世界

はじめに 広告がどう決まるのかは説明しますが、お金の流れなどは説明しません。 今回はインフラやサーバーサイド、チーム開発のお話です。 参加したコンペ 今回は以下のアドテクコンペにサーバーサイドエンジニアとして参加してきました。 www.cyberagent.c…

Kubernetesに2つのPodを高度スケジューリングしたときの通信時間の計測

本記事 今回はKubernetesを使って、AffinityによってPod間通信が高速化をするのかを検証したいと思います。 本記事 インフラ構築 準備 InfluxDBを起動 Grafanaを起動 クラスタの構築 Cloud Registryへアプリケーションイメージのデプロイ 実験1 外部クライア…

Kubernetesクラスタの簡単なモニタリングツールkube-ops-viewを使ってみる

本記事 今回はKubernetesのWeb UI モニタリングサービスであるkube-ops-viewを使ってみようと思います。 本記事 Kube-ops-viewのセットアップ 概要 インストール UI説明 Podの分類 PodやNode、クラスタのデータ いじってみる 初期UI Search 表示場所変更 ソ…

宣言的Spinnaker設計 継続的デリバリーのさらに上にいく

tl;dr 学部4年になり忙しくなるので、よりすべてを「自動化」しようと思いました。 最近自分が考案した 宣言的継続的デリバリー(Declartive Continuous Delivery) を紹介させていただきます。 まず、宣言的継続的デリバリーを定義させていただきます。 宣言…