You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
はじめに こんにちは、技術本部ML・データ部MLOpsブロックの鹿山(@Ash_Kayamin)です。先日、20個の開発環境APIを用意し、各APIをリクエストに応じて動的に起動できる仕組みをKnative Servingを用いて構築しました。 この記事ではKnative Servingを利用した背景と、利用方法、はまりどころ、利用によって得られたコスト削減効果についてご紹介します。なお、今回はKubernetesクラスタのバージョンとの互換性の都合でKnativev1.3.1を利用しました。2022/9現在の最新バージョンはv1.7.1になりますのでご注意ください。 目次 はじめに 目次 課題:20個の異なる開発環境APIを低コストで提供したい 解決策:Knative Servingを用いて、リクエストに応じて動的にAPIサーバーを起動する仕組みを導入する Google Cloud上でA
はじめまして。 機械学習チームにてレコメンドの改善を行っているgumigumi4fです。 本記事では、機械学習チームの取り組みの一環として機械学習等のバッチを含むバッチ実行環境を整備した話について話したいと思います。 今までのバッチ実行環境 機械学習チームではピクシブ会社全体のサービスにおけるアイテムのレコメンド等を主に取り組んでおり、そのロジックは多岐に渡ります。 matrix factorizationを用いた手法 item間共起頻度に基づくシンプルなアイテムの推薦手法 ニューラルネットを用いた手法 これらの計算を行うためのバッチは実装者の好きな手法で実装されており、バッチを行う環境に関しても下記にようにバラバラになっていました。 オンプレの機械学習用マシンに各ユーザー毎に設定したcronでバッチが実行 gitlab-ciのスケジューリングによってバッチが実行 BigQueryで完結す
こんにちは、かたいなかです。 最近、転職会議のCI/CD基盤をFluxベースのものからArgoCDベースのものに式年遷宮しました。今回の記事では、新しいArgoCDでのCI/CD基盤について、作り直しに至った経緯や改善点をご紹介します。 ArgoCD移行に至った経緯 転職会議では、以前の記事でも紹介したFluxというGitOpsのツールを使用してGitOpsを実現していました。 made.livesense.co.jp しかし、その後FluxからFlux2への移行が公式から推奨されるようになった後も、Flux2やArgoCD Image Updaterへの移行ができない状態が長く続いていました。 また、現行のフローでも以下のような大きな問題点を抱えていました。 ロールバックできない問題 チャットボットが老朽化 Weave Cloudがサービス終了 以下でそれぞれ説明します。 ロールバックで
Istioは、サービスメッシュを実現する新たな仕組み「Ambient Mesh」を発表しました。 現在のIstioは、各サービス(≒KubenetesのPod)ごとにプロキシを配置し、サービス間のネットワークをプロキシ経由で構成することによってサービスメッシュを構築しています。これによりサービス間の通信のトラフィックコントロール、暗号化、可観測性(オブザーバビリティ)などの機能が実現されるわけです。 この仕組みは、サービスの隣にプロキシを配置することから、「サイドカー」パターンなどと呼ばれています。 新たな仕組み「Ambient Mesh」では、Pod群をホストしているノードにプロキシを配置し、このプロキシによってサービスメッシュの機能を実現します。 Podごとのプロキシ配置が不要になる、つまり「サイドカーレス」(Sidecar-less)なパターンとなることで、デプロイや管理の容易、コン
はじめに Kubernetes 1.25でAlpha機能ではありますが、PodでのUser Namespaceがサポートされました! User Namespaceの概要について書いた記事は以下の通りです。 [Kubernetes 1.25] Added alpha support for user namespaces in pods phase 1 今までは、Podは.spec.securityContext.runAsUserで非rootで動作させることが可能でしたが、その場合だと、起動にroot権限が必要なnginxなどのコンテナは起動できず、PodがCrashLoopBackOffとなっていました。そこで、Kubernetes 1.25で実装されたPodでのUser Namespaceを利用し、ノードのある範囲のUIDを、PodのUID 0-65535にマッピングすることで、見せか
はじめに こんにちは、計測プラットフォーム開発本部SREブロックの渡辺です。普段はZOZOMATやZOZOGLASSなどの計測技術に関わるシステムの開発、運用に携わっています。 先日私達のチームでは、EKS環境にArgo CDを導入し、デプロイパイプラインのリアーキテクトを行いました。 開発環境では、Argo CD Image Updater(以下、Image Updaterとする)を活用したスピーディなデプロイ設計をしました。詳しくは「EKS環境へArgo CD Image Updaterを導入し、デプロイ時間と管理コストを削減した話」を参照ください。 techblog.zozo.com 本記事では、Argo CD導入による本番環境のリリースフロー設計やタグ更新の仕組みなど工夫した点について紹介します。Argo CDを検討している方に向けて、少しでも参考になれば幸いです。 目次 はじめに
夏の自由研究ブログ連載2022 の10本目です。 はじめにTIG 岸下です。業務でGKE(Google Kubernetes Engine)を利用することがあるのですが、Kubernetesの挙動や仕組みなど如何せん理解が難しいです。 そこで今回は、自分の手でイチからKubernetesを構築することで勉強しようと思ったのが本記事のモチベーションです。 ちょうど自宅にRaspberry Piが3台あったのでRaspberry Piでクラスタを構築していこうと思います。基本的には以下の記事を参考に設定を行っていき、自分の理解を深めるために解説を挟みながら書いていこうと思います。 参考:RaspberryPi 4 にUbuntu20.04 をインストールして、Kubernetes を構築してコンテナを動かす 今回Kubernetes構築するにあたって用意したもの Raspberry Pi3 M
KubernetesのIngressリソースを導入しましょう。 Ingressとは、クラス環境内にデプロイされたアプリ(Pod)に対して、ロードバランシングを行うKubernetesの機能です(こちら参照)。 環境構築編では、動作確認用にServiceリソースをLoadBalancerとして定義することでL4ロードバランサーを作成(実態はELB)しました。 この方法はシンプルですが、ルーティング機能が貧弱(L4)で、様々なアプリケーションがデプロイされると、エンドポイントごとにロードバランサーを配置する必要がある等、柔軟性やコストの観点で劣ります。 Ingressを導入し、Ingressのマニフェストにルーティングのルールを反映すると、1つのロードバランサーで様々なアプリケーションへのエンドポイントを提供することが可能となります。 実際のプロジェクトでも、Ingressを利用して外部にアプ
Fluentd実践入門 Fluentdの現バージョン(v1.15)について世界で一番詳しい本です。というか、Fluentdそのものだけについての、おそらく世界で唯一の技術書です。 出版社は技術評論社です。電子版もGihyo.jpやKindleはじめ各社で出ます。買ってね! gihyo.jp TL;DR 発売日は10月8日です 一部書店ではちょっと早く9月末に並ぶかも 電子版は発売日よりちょっと前に出るかも1 544ページ、Fluentd本体については考えられる限り盛り込みました Fluentdをなんとなく使っている人が確信を持って使えるようになれるはず 組込みプラグインの頻出用法、本番環境での運用ノウハウ、プラグイン開発からテストなどまで エコシステム的な部分についてはカバーできていません Kubernetes上での運用やFluent Bitとの組み合わせとか AWS FireLensやG
※この投稿は米国時間 2022 年 8 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。 本日は、自動化とスケーラビリティに優れたマネージド Kubernetes である Google Kubernetes Engine(GKE)の一般提供開始から 7 年を迎えるにあたり、GKE を活用してお客様が素晴らしい成果を挙げた一般的な事例を 7 つ紹介します。 開発者の生産性を加速させる開発者の時間は大変貴重です。GKE では、統合された豊富なツールセットを提供し、より迅速な高頻度の出荷をサポートしています。継続的インテグレーション(CI)の手法を取ることで、開発者はすべてのコード変更をメインブランチに頻繁に統合し、プロセスのできるだけ早い段階で問題を明らかにすることで、迅速に障害を表面化できます。CI パイプラインは通常、継続的デリバリー(CD)を使用して、デプ
はじめに こんにちは。SRE部の巣立(@ksudate)です。 ZOZOTOWNのマイクロサービス基盤では、GitHub Actionsを利用したCDパイプラインを構築しています。しかし、管理するマイクロサービスが増えるにつれて運用負荷が高まりつつありました。 本記事では、ZOZOTOWNのマイクロサービス基盤のCDパイプラインが抱える課題と、それらをFlux2でどのように解決したのかを紹介します。また、Flux2の導入にあたり工夫したポイントを紹介します。 目次 はじめに 目次 Flux2の導入背景 マイクロサービス基盤のCI/CDパイプラインが抱える課題とこれまでの対策 Flux2とは? Flux2によるGitOpsの実現 Flux2の導入で工夫したポイント Flux2の管理 GitRepositoryとKustomizationの管理 Flux2によるkustomize build
はじめに eBPF とはなにか ざっくり概要 「Packet Filter」なのに「Virtual Machine」? eBPFでなにができるか? カーネルイベントのフック ユーザーランドアプリケーションとのやりとり eBPFの主な用途 eBPFが注目される背景 eBPFの仕組み アーキテクチャと処理フロー カーネルモジュールとeBPFの違い eBPFプログラムの作り方 eBPFプログラムを作ってみる 環境の準備 Hello world もう少し複雑なサンプル その他のサンプル HTTPリクエストのダンプ TCP接続先の調査 tcplife dirtop filetop oomkill まとめ eBPFはなにに使えるか 参考サイト はじめに こんにちは、Platformチームの小森です。 eBPF (extended Berkley Packet Filter) について、2022年8月2
Amazon Web Services ブログ 【開催報告】「夏のAWS Kubernetes 祭り!〜Kubernetesの運用最前線を紹介〜」セミナー こんにちは!アマゾン ウェブ サービス ジャパン合同会社 コンテナサービス事業開発担当の勝間田です。 2022 年 8 月 4 日(木)に Amazon Elastic Kubernetes Service (EKS) の使用事例を中心とした「夏の AWS Kubernetes 祭り!〜Kubernetes の運用最前線を紹介〜」イベントをオンライン開催いたしました。 当日は 500 名強のお客様にご参加いただき、株式会社ZOZO様、Chatwork株式会社様、株式会社サイバーエージェント様、freee株式会社様、スマートニュース株式会社様、株式会社マネーフォワード様の 6 社のお客様に登壇いただきました。実際に Kubernetes
こんにちは。 Platformチームの前多(@kencharos)です。 2022年8月9日に開催した社内勉強会で、eBPFベースのネットワークミドルウェア、Cilium(スリィアム) について発表しました。 この記事は発表の内容をベースに内容を補足したものです。 この記事を読むにあたり、Kubernetesをある程度触ったことがないと用語などが分かりづらいかもしれません。 サービスメッシュやIstioについては、構成や導入目的について簡単に次節に記載しています。 より詳しく知りたい方はIstioのサービスメッシュの説明を見てもらえると、Ciliumとの対比がわかりやすくなるでしょう。 またサービスメッシュを触ったことがある、あるいは運用している方であれば、Ciliumの魅力がより伝わると思います。 eBPFの知識は必要ありません。またeBPFについて同僚も社内勉強会で発表していますので、
システムを使う上で、障害を完全になくすことはできません。そして、いざ障害が発生し、システムが正常に動作しない状況に陥ると、多大な損害が発生することもあります。そのため、システム構築では障害に備えて冗長性を確保し、事前に障害検証を行い、障害が起きてもシステムが正常に動作することを確認します。 しかし、現在の主流である「分散システム」は、多数のサービスを組み合わせることで1つのシステムを実現させるため、規模が大きくなるにつれてシステムが複雑化していきます。それに伴い、障害検証の負荷も増えています。さらに、昨今コンテナを利用した「マイクロサービス化」によって、ますますサービスの数が増えて、システムの複雑化が一段と進んでいる状況です。既に人力だけでは障害検証を行っていくことが難しくなってきました。 そんな中、登場してきたのが今回お話する「カオスエンジニアリング」です。 Chaos Meshとは カ
5分でわかる!Kubernetes/CloudNative Topics Cilium Projectから公開! eBPFを用いてセキュリティの可観測性をもたらすTetragon こんにちは。サイバーエージェントの青山真也(@amsy810)です。 弊社のインフラ組織 CIU(CyberAgent group Infrastructure Unit)では、Kubernetesを用いて、「Kubernetes as a Service基盤」や「ML Platform」を実装・運用しています。そんなチームのメンバーで今月から、KubernetesやCloudNative関連の注目している技術や実際に利用しているプロダクトについて紹介していきます。 第1回目は、2022年初の新春企画で取り上げたeBPF関連のプロダクトでもあるTetragonについて紹介します。 eBPFとは? eBPFは、カ
「あるサービス用に開発した仕組みを全社共通の仕組みに変える」といったアプローチは決して珍しくない。一から仕組みを構築するよりは、先行事例としてうまくいっているものを流用したり機能拡張させたりする方が失敗は少ないからだ。 ただ、特定の目的に合わせて作った仕組みに汎用(はんよう)性を持たせることは簡単ではない。関係者なら誰でも使えるように環境を整備する必要があるし、運用の方法も全社での利用に合わせて変更しなければならない。 Cloud Operator Days Tokyo 2022のセッション「DMMプラットフォーム ゼロから始めるKubernetes運用 課題と改善」でDMMのpospome(ぽすぽめ)氏(マイクロサービスアーキテクトグループ SRE<Site Reliability Engineering>チーム)は、そうした「別の目的で構築された仕組み」の運用を引き継ぐときに起きた課題
はじめに リクルートで「Airレジ オーダー セルフオーダー」(以後、セルフオーダー)の開発を担当している早川です。セルフオーダーは飲食店でお客さまがQRコードを読み込むことでスマートフォンから料理を注文できるWebアプリケーションです。 全3回にわたってリクルートの新規事業である、セルフオーダーにおけるマイクロサービスアーキテクチャの取り組みを紹介する本連載第3回は、マイクロサービスの実運用で感じた課題、工夫した点と今後の展望を紹介します。 現在のアーキテクチャとそこに至るまでに感じた課題 第2回で、セルフオーダーのアーキテクチャが簡易構成から始まり、モノリスを経て図1のようなマイクロサービスへ進化してきた過程を紹介しました。 マイクロサービス化して運用する中で感じた5つの課題をそれぞれ紹介します。 サービス間の依存関係が複雑になる恐れがある モニタリングの項目が多くなる傾向がある 開発
要約 k8sは、manifestをサービスが動くように設定するのは簡単だが、適切な設定は分かりづらい その結果、いまいちな設定をしてしまいがち kube-scoreはmanifestの問題と対応方法を教えてくれる k8s初心者にこそ、ツールによるmanifestの自動検証はおすすめ 想定読者 Kubernetes(以下、k8s)でとりあえずサービスを動かせるが、雰囲気で触っている人向けです。 k8sの設定は雰囲気で決められがち こんにちは。ANDPADでバックエンドの開発をしているzigeninです。 ANDPADでは、バックエンドのサービスをk8sで動かしています。 k8sを使っていて感じる一番の問題は、manifestで設定できることが多すぎて、良い設定が分かりづらいことです。 そのせいか、k8sに習熟していないと以下のような設定をしがちです*1。 apiVersion: apps/v
米VMwareは8月25日、クラウド基盤(PaaS)などの設定ミスをチェックできるツール「CloudHealth Secure State」の無料版を提供すると発表した。 AWS、Microsoft Azure、Google Cloud Platform、Kubernetesなどの設定ミスを検知して通知する。エンタープライズ版に比べ、チェックできるクラウドアカウントの数や更新頻度、データ保管期間などを制限している。 クラウドの設定ミスは、情報漏えいやマルウェア感染などのリスクになる。2022年にはエイチームや研修サービスを提供するリスクモンスターなどで、情報漏えい事案が発生した。こうした問題を防ぐツールは「CSPM」(Cloud Security Posture Management:クラウドセキュリティ動態管理)と呼ばれ、VMwareなどいくつかの情報セキュリティ企業が提供を始めている。
Podman Desktopはアプリケーション開発者向けのコンテナ実行環境とKubernetesを提供するソフトウェアです。WindowsとmacOS、Linuxに対応しているようです。 現在は0.0.6が最新のバージョンです。 podman-desktop.io Docker Desktop有料化からおおよそ一年が経ち、同様のソフトウェアが増えてきましたね(Rancher desktop、Container Desktop、ちょっと用途が異なりますが、Multipassなど)。OSSのDockerやDocker Desktopを含めてどれも好きなんですが、今の所私のお気に入りはRancher Desktopですね。 Multipassはコマンドでなにか操作するようなときにVMを作って、その中で操作しています。Ubuntuのsnapパッケージについては議論があるのは知っていますが、少なくと
2022-08-23にKubernetesのv1.25がリリースされました。 Kubernetes公式ブログ - Kubernetes v1.25: Combiner PSP(Pod Security Policy)の削除等、多くの変更がありますが、Ephemeral ContainersがBetaからStableバージョンとなりました。 この機能はkubectl debugコマンド[1]で使用できますが、あまり使ったことがなく、これを機に改めて使い方を調べてみましたのでご紹介します。 一般的にKubernetes上で動作するPodのコンテナをデバッグするにはkubectl execを使うことが多いかと思います。 しかし、昨今はセキュリティリスク低減や軽量化による起動速度向上の目的で、Distrolessイメージを使うことが多くなってきています[2]。 この欠点はデバッグが難しいことです。
こんにちは。Wantedly Infrastructure Squad 所属の @irotoris です。 Wantedly Visit を始めとする Wantedly のサービスのバックエンドシステムはほぼ全て Kubernetes クラスタの上で動いています。今まで kOps という OSS を使って AWS の EC2 インスタンス上に Kubernetes クラスタを自前で構築運用していましたが、2022年6月に AWS の Kubernetes Managed Service である Amazon Elastic Kubernetes Service (EKS) に移行しました。 この記事では Wantedly と Kubernetes の歴史を振り返るとともに、なぜ EKS に移行したか、移行した結果どうだったかをお伝えします。 目次 Wantedly システム基盤としての K
Amazon Web Services ブログ Prometheus を用いた、Amazon EKS API server のトラブルシューティング “クラスターで問題が発生した” と朝3時に監視システムからのアラート通知で起こされれば、オンコール担当者にとっては悪夢です。その場合、問題が Amazon EKS のマネージドコントロールプレーンにあるのか、それとも先週ロールアウトした新規のアプリケーションにあるのか、即座に切り分けなければなりません。たとえブログで推奨されたデフォルトのダッシュボードをインストールしたとしても、参照するメトリクスの意味を理解することはやはり難しいでしょう。 よくある問題にフォーカスしたダッシュボードの用意があれば、すぐに全てが意味することを理解でき、不明瞭な問題を効率的に素早くスキャンできるようになります。 API サーバーのトラブルシューティング 上記は野
はじめに 管理画面の課題 GitOpsとは Push型 Pull型 なぜPush型よりPull型なのか Push型のデメリット Pull型のメリット GitOpsにおけるPull型の構成 GitOpsで課題は解決されるのか まとめ 参考リンク はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。 広告技術部では、広告配信に関わる様々なアプリケーションを管理しており、その多くがEKSのKubernetesクラスタ上で動作しています。 広告の入稿や審査を行う管理画面もそのうちの一つです。フレームワークにはRailsを使っています。 管理画面をEKSに移行する際の記事はいくつか本ブログにも上がっているので、興味があればぜひご覧ください。 tech.gunosy.io tech.gunosy.io 今回、その管理画面のCDにGitOpsを導
はじめに DevOpsプラットフォームの取り組みを紹介する5回目の記事です。 Qmonus Value Stream開発チームの杉野です。 連載第5回では、Qmonus Value StreamでCI/CD機能を実現するための要素技術として用いている、OSSのTektonについて紹介します。 これまでの記事をまだ見ていないという方は、Qmonus Value StreamというプラットフォームがどのようにTektonを利用しているかを過去の記事で述べていますので、覗いてみてください。 また、本記事ではKubernetes(以下、k8s)に関する知識がある前提で記述していますので、ご了承ください。 Tekton とは Tektonは一言でいうと、CI/CDシステムを作成するためのKubernetes Nativeなオープンソースフレームワークです。さらに噛み砕いて表現すると、k8s上で動作し
はてなには、開発合宿というイベントがあります。 有志で集ったメンバーが普段の開発から離れ、テーマを決めて集中して取り組むイベントです。 2022年6月にも、私(id:dekokun)id:hayajo_77 id:masayosu id:yajimasanの4人からなるチームで開発合宿を行いました。 今回は、はてなが提供するサーバー管理・監視サービスMackerelによるコンテナ監視で必須になるmackerel-container-agentというプログラムを題材に、Kubernetesのadmission webhookを作ってみました。 mackerel-container-agentでadmission webhookを作る狙い 合宿の準備: Kubebuilderをもくもくと自習 1日目午前: Pod作成時にwebhookが動く 1日目午後: mackerel-container-
この記事を読んだらできること Mobyをビルドしてruncとcontainerdを動かせます。 runcとcontainerdを使ってコンテナを動かすことでなんとなくコンテナの理解が深まります。 夏休みの自由研究にコンテナを動かす仕組みを自分で深く調べたくなります(たぶん)。 記事の背景 Dockerを使い、なるべく小さい薄いコンテナを作っていく中でDockerの中身を詳細に知りたいと思ったので、DockerのソースコードであるMobyをビルドしてコンテナ実行のコアの基盤ソフトであるrunc、containerdを動かしてみました。 1. コンテナのアーキテクチャと用語解説 まずMobyを動かす前にコンテナのアーキテクチャと用語を理解しておく必要があります Docker Desktop(mac版)を俯瞰した図が上記となります。実際はDocker DesktopはKubernetes(k8s
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く