Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetes�to Achieve Both Frequent Updates and Stability
Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetes�to Achieve Both Frequent Updates and Stability
背景 開発チームが抱えるよくある課題として システムが変化する一方でドキュメントは更新されず腐る メンバーの流入出によって口伝でかろうじて継承された知見も失われる 検索性が良くないと過去のドキュメントが気づかれず、同じような内容のドキュメントが新規量産される 後から参加したメンバーはどちらが正のドキュメントか分からず混乱する といったことが良くあります。 解決方法としては以下のように、GitHub&ルールベースで管理するといった例があります。 future-architect.github.io また組織・システムが大きくなってくると認知負荷を低減するためにドメインで区切るような形でチームの分割が始まりますが、 異なるチームによってシステムが管理され、システムの依存関係を全て知っている人がいなくなる CxOレイヤが大規模イベント前に現状を把握したいときに都度時間がかかってしまう チームごと
先日、Kubernetes Meetup Tokyo #59 で「KEP から眺める Kubernetes」というタイトルで発表しました。発表の後で Kubernetes の upstream のキャッチアップ方法について質問を受けました。その場で回答はしたのですが、ちょうど社内の共有会で似たような話をしたところだったので、加筆修正したものを公開しておきます。 はじめに Kubernetes の upstream を追いかけ始めて 1 年ちょっと経ったので、その経験をまとめます。Kubernetes の upstream やエコシステムを観察しているだけで、コントリビュータではありません。間違っている部分があったらごめんなさい...! Kubernetes の開発体制や開発者の所属組織の分布、新しい機能を追加する際のプロセスの話を簡単にしてから私のキャッチアップ方法についてまとめています。
マルチクラスタ戦略を無邪気に採用するとどうなるか 夏のAWS Kubernetes 祭り! - 2022/08/04 2 髙田 颯 Takada Soh freee株式会社 プロダクト基盤本部 SRE Platform team 経歴 2020年5月~ 人事労務freee開発 2021年4月 新卒入社 2021年7月~ SRE お悩み Kubernetesにバグ修正のPRを4月に 送ったものの途中から返信がなく悩み中 マルチクラスタ戦略を 無邪気に採用するとどうなるか 4 (運用が)爆発します。 マルチクラスタ戦略を無邪気に採用するとどうなるか 5 何が爆発したのか freeeのcluster運用の歴史 現在の戦略 マルチクラスタ(シングルテナント) EKS version blue/green upgrade インフラの運用を丸ごと引き受けるSRE 改善の取り組み upgrade方式の整
WINTICKET の Web 版(以降 WINTICKET Web)のテックリードを担当している @dora1998 です。 サービス開始以来、WINTICKET Web は Google Kubernetes Engine(以下 GKE)へデプロイして稼働していました。2022 年 10 月に Cloud Run を採用した構成へリアーキテクチャを行ったので、この記事ではその背景や具体的な構成、付随して行った改善について紹介します。 抱えていた課題 WINTICKET Web ではリアーキテクチャ前のバックエンド構成について、大きく 3 つの課題を抱えていました。 リリースの安定性 これまでのリリースフローでは段階的なリリース手段がなく、リリース内容に不具合が含まれていた場合にほぼ全てのユーザーが影響を受ける問題がありました。 加えて、WINTICKET はレース情報を提供する競輪シス
任天堂:新しい汎用ゲームサーバーを Google Kubernetes Engine、Cloud Spanner などを駆使して構築 世界中で愛好されている任天堂株式会社(以下、任天堂)の家庭用ゲーム機「Nintendo Switch」。そのオンライン マルチプレイを担う汎用ゲームサーバーの動作基盤に新たに Google Cloud が採用されました。多くのユーザーとの通信を処理しなければならないこの仕組みを、なぜ Google Cloud 上に構築したのか。どのような工夫を施すことで、安定性・可用性と運用負担の軽減を両立させたのか。構築に携わったエンジニアのお二人に話を伺いました。 利用しているサービス: Google Kubernetes Engine、Agones、Anthos Service Mesh、Cloud Spanner、Cloud Load Balancing、Cloud
みなさん、こんにちは。horsewinです。 AWS CDK Advent Calendar 2022 15日目の記事となります*1。 AWS CDK(以降、CDK)でKubernetes(k8s)のYAMLが記述できるライブラリである、AWS CDK for Kubernetes/cdk8sに触れていきます。 CDKの開発者体験でKubernetesマニフェストを作成できるため、YAMLでマニフェストを書くのに疲れた人は立ち寄ってみてください。 今回触れること、触れないこと 次の内容について、本エントリで述べていきます。 特に2022年に晴れて一般公開(GA)となったcdk8s+は、CDKらしさである抽象化が実現されているためオススメです。 触れること CDKで構築するKubernetesマニフェスト(cdk8s) より抽象的に記述できるcdk8s+について 触れないこと CDKの概要や
はじめに 今回は、NearMeにおけるCIの仕組みについて説明します。 CIとは、Continuous Integration(継続的インテグレーション)の略で、 コード変更の度にビルドとテストを自動で実行するプラクティスを指します(参考)。 NearMeではCIを実現する方法として、Kubernetes(k8s)上に動作するArgoを利用しました。 k8sはコンテナ化されたアプリケーションを管理するためのオープンソースのシステムです。 Argoはk8s上でCIやCD(Continuous delivery)を実現するツール群です。 一般に、CI構築では外部サービスを利用することも多いですが、 他システムの障害や料金に依存せずCIを管理したかったのと、 既にk8sを中心にシステムを構築していたので、 多少の煩雑さはありつつも自前で構築しました。 システム構成 CIシステムはイベントの処理を
となっています。 構成図 クラスタを構成するものを図にすると以下のようになります。 この中の一部コンポーネントは次節以降で登場します。 Kubernetes基盤 クラスタの基盤部分についてどのような構成になっているのか説明します。 kubeadm クラスタの構築自体については kubeadm を利用しています。 kubeadm を利用したクラスタの構築方法については公式のドキュメントが参考になります。 Static Pod と systemd kubeadm でデプロイすると kube-apiserver 等は Static Pod で、kubelet は systemd 以下で動作するようになります。 kube-apiserver は意外にメモリを食ってしまうのでそのまま動作させているとメモリ不足になることがあります。(ありました) なので kube-apiserver と etcd の
※岡本、正野、宇都宮はNTTデータ所属 Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。前回から複数回に分けて「Observability(オブザーバビリティ)」「可観測性」にフォーカスして解説しています。 Kubernetesを使っていてトラブルが発生したけど、原因究明をどう進めればいいか分からない……ということはありませんか? コンテナを利用したシステムでは、マイクロサービス化が容易なので、コンポーネントやサービスの数が従来のシステムに比べて非常に多くなります。そのため、障害が発生した場合の原因の究明も大変になります。 そこで今回は、「Observabilityでいろいろとデータが取れるのは分かったけど、何からどう見ていけばいいのか分からない」という方向けに、Kubernetesで実
k8s のCDツールがいくつかあるので、それらの特徴についてまとめる。 一応CDツールの定義は"k8sにWebアプリケーションをデプロイするツール"を想定しているが、 k8sにおけるデプロイはマニフェストファイルを apply することなので、 そういったものはすべてCDツールとみなして調べた。 すべてのツールをちゃんと調べたわけではないので、ものによってはサラッとした紹介になっている。 Flux Tekton(Tekton Pipeline) Jenkins-X PipeCD GCP Cloud Deploy AWS Code Pipeline Spinnaker Pipeline & Stage 動的なパイプライン Managed Delivery Spinnaker を使いこなせるか? ArgoCD Single Source of Truth(SSOT) 複雑なCDパイプラインは作
KubernetesをGoogleが開発し、オープンソース化し、成功した経緯。関係者らが肉声で語るドキュメンタリー映像「Kubernetes: The Documentary」YouTubeで公開 ITエンジニア向けの転職紹介などキャリアサービスを提供しているHoneypot社は、Google、Red Hat、Cloud Native Computing Foundationの協力の下、Kubernetesの誕生から現在までをドキュメンタリー映像としてまとめた「Kubernetes: The Documentary」をYouTubeで公開しています(Part 1、Part 2)。 Do you know the story of @kubernetesio? Hear the details of how the project came to be from those who live
本連載では、エンタープライズシステムでコンテナ/Kubernetesを活用した業務システムを開発・運用するエンジニアに向けて、知っておくべきKubernetesセキュリティの基礎知識、Microsoftが提供するパブリッククラウド「Azure」を使ったクラウドにおけるKubernetesのセキュリティ対策のポイントや注意点といった実践的なノウハウを紹介します。 コンテナ/Kubernetes環境に求められるセキュリティとは? 今日、オンプレミスの環境で運用されていた業務システムの多くが、クラウドへの移行を進めています。クラウドを活用することで、高い拡張性を持つセキュアなシステムを短期間で開発できます。加えて、コンテナベースのクラウドネイティブ・アプリケーションにモダナイズすることで、変化の激しいビジネス環境に追随できるだけでなく、最新技術を起点としてこれまでになかったビジネスモデルを構築し
Mercari advent calender の21日目を担当します@sanposhihoです。現在大学の学部4回生で、メルカリでは内定者インターンとして、メルカリのホーム画面などのバックエンドを担当するチームに所属しています。 また、最近は個人的にKubernetesやその周辺のOSSにコントリビュートをしていて、特にKubernetesのコントロールプレーンのコンポーネントのうちの一つであるkube-scheduler周りを触ってることが多いです。 後で詳しく説明しますが、kube-schedulerはPodをどのNodeで実行するかを決定しているコンポーネントです。NodeAffinityや比較的新しいものだとPod Topology Spread Constraintsなど、Podのスケジュールの制約を指定できる機能も基本的にこのkube-schedulerに実装されています。
本記事では、普段Kubernetesを触っている中で便利に感じたツールやコマンドをざっくばらんに紹介します。 Kubernetes初心者からベテランまで幅広く楽しんでいただければ幸いです。 krew krewでは、kubectlのプラグイン管理を行います。 これ以降、本記事で紹介するプラグインは全てkrew経由でインストールが可能です。 インストール
Data Platform グループのリーダーの田中です。データ分析基盤 Livesense Analytics と機械学習基盤 Livesense Brain のプロジェクトマネジメント/アーキテクチャリングをしています。 今回は Livesense Brain における Kubernetes (k8s) manifest の管理方式と運用設計について紹介します。 2種類の管理方式: 個別管理と集中管理 k8sクラスタで複数のシステムを運用しmanifestをGit管理するとき、その管理方式は大きく次の2種類に分けられます。 個別管理: 各システムの実装を管理するGitリポジトリにmanifestを一緒に含める 集中管理: 各システムのリポジトリと別に、全manifestを管理する単一のリポジトリをおく 個別管理の場合、各システムのリポジトリで開発〜運用にかかわるすべてのコードを管理でき
関連キーワード SDN(Software Defined Networking) | オープンソース | Docker コンテナオーケストレーター「Kubernetes」では複数のコンテナ実行ホストがクラスタ(以下、Kubernetesクラスタ)を構成します。これはコンテナ管理ツール「Docker」の一般的な環境において、コンテナ間通信がコンテナ実行ホスト内で完結することとは異なります。そのためKubernetesの場合、Kubernetesクラスタ内のホストを跨(また)がる「Pod」(Kubernetesクラスタにおけるアプリケーションの実行単位)間で通信する仕組みが必要になります。Kubernetesクラスタの外部からPodに接続するための仕組みも必要です。 併せて読みたいお薦め記事 コンテナの基礎知識 いまさら聞けない「OpenShift」と「Kubernetes」の基礎 どう違うの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く