2024/06/05に行われた、OCHaCafe Season8 #5 - Kubernetesで作るIaaS基盤で用いた資料です。 commpass: https://ochacafe.connpass.com/event/316645/
背景 本家のruncで実装されているSELinux機能が、Youki (Rustでruncを再実装するOSS)に実装されていないことがわかった。 そこで、SELinux機能をYoukiに導入することになったのだが、SELinux crateが無かったのでRustで再実装することになり、そのプロジェクトにアサインしてもらった。 しかし、SELinuxについて何も知らなかったので、SELiuxについて色々と調べたことをまとめた。 SELinuxとは何か? security-enhanced Linuxの略称。MAC制御を行うことができる。通常のセキュリティに加えてSELinuxを設定することで、システムセキュリティを更に強化できる。 Labelとpolicyを組み合わせたセキュリティ制御が特徴である。process・file・networkなどのobject、process・userなどのsu
◆初めに Visual Studio Code Remote – Containersという拡張機能を使って、前から気になってたGo言語の勉強用環境を構築しました。 ◆やってみる 使うものをダウンロードしていきましょう。 ・Visual Studio Code https://azure.microsoft.com/ja-jp/products/visual-studio-code/ ・Visual Studio Code Remote – Containers https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack ・docker https://www.docker.com/ VS Codeでフォルダーを開いて、F1 や Ctrl + Shift +
コンテナユーザなら誰もが使っているランタイム「runc」を俯瞰する[Container Runtime Meetup #1発表レポート] こんにちは、NTTの徳永です。本稿では、コンテナユーザなら誰もが使っていると言っても過言ではない、コンテナランタイムの筆頭「runc」に注目し、その概要を仕様と実装の両面から俯瞰します。本稿は私が主催者の一人として参加した「Container Runtime Meetup #1」で発表した内容をベースにしています。詳しい内容は発表資料もぜひご参照ください。 コンテナランタイムとはKubernetes等のコンテナオーケストレータを用いてアプリケーションをコンテナ(Pod)として実行するとき、実際にコンテナの作成をしているのは誰でしょうか。実はKubernetesはコンテナを直接触らず、あるソフトウェアを用います。まさにそれがコンテナランタイム(以降、ランタ
はじめに ご無沙汰しています。 最近ブログ更新をサボっていたのですが、本日(2021-05-19 JST)、AWSの新サービスであるApp Runnerが彗星の如くリリースされました。コンテナ技術のアップデートを追う身としてとても気になったので、早速サービスの特徴をまとめてみました。 そのサマリ内容をブログを通して皆さまにお伝えできればと思います。 App Runnerが気になる方や利用判断のお手伝いにつながれば幸いです。 注意事項 本ブログは2021-05-19時点の情報になります。 今後、サービスのアップデート次第で内容が変わる可能性がある点だけご留意いただければと思います。 Overview AWS App Runnerとは、プロダクションレベルでスケール可能なWebアプリケーションを素早く展開するためのマネージドサービスです。 GitHubと連携してアプリケーションソースコードをA
はじめに 本連載は、Kubernetesに入門しあぐねているエンジニア、特にアプリケーション開発者の方向けにKubernetesへの入門の仕方と最低限動かすための知識を実践形式で紹介するものです。 Kubernetesについて全く触ったことがないという方から、何となく知っているけど実務で応用できない、実務で使っているけど実のところよく分かっていない……という方を対象に、Kubernetesの全体像の知識と手順をステップアップして学べるように構成しています。 今回の第1回は、本連載をより効果的に活用していただくために、Kubernetesに入門する意義と効率的な学習法を取り上げます。 Kubernetesに入門する意義 さて、現在、DockerやKubernetesに代表されるコンテナ技術は、随分と広く利用されるようになってきました。開発環境のみならずプロダクション環境でも多く採用されるなど
Kubernetesの読み方 Kubernetesと書いて、どう読むでしょうか。 登場時には、クーベルネイティスと読む人やクーベネティスと読んだり、いったいなんて読むのが正解なんだろうと悩んだままなんとなくクーベルネティスがいいかななんて思っていました。 今日、日経にこんな記事が出ました。 www.nikkei.com ・・・その主役は、グーグルが開発した仮想化ソフトの運用ツール「クバネティス」・・・ クバネティス!!!。また新しい呼び方ですが、日経に出たということは今後は経営層はクバネティスと言ってくるはずなので、少なくとも日本国内では、く・・くばねてぃす・・と呼ぶことにしようと思います。 Kubernetesはまだ成功していない 国内のメディア記事を読む限り、結構たくさんのワークロードがKuberenetesで動くようになってきたように思います。特に大量のコンテナで分散処理する必要があ
[速報]Azure Functions、Azure App ServiceなどがAWSやGoogle Cloud、オンプレミスなどで実行可能に、Kubernetes対応で。Microsoft Build 2021 マイクロソフトは、オンラインで開催中の開発者向け年次イベント「Microsoft Build 2021」で、Azure App ServiceやAzure Functionsなど、これまでMicrosoft Azure独自だったサービスをKubernetesに対応させたことを発表しました。 これにより、以下のサービスはMicrosoft AzureだけでなくAWSやGoogle Cloudやオンプレミスなどのプラットフォームを問わず、Kubernetes環境上であれば動作するようになりました。 Azure App Service Webアプリケーションを簡単にデプロイし、スケーラ
シナリオを用いた負荷テストツールとしてJMeterやGatlingなどがございますが、AWSでも負荷テストのソリューションが用意されております。 こちらのソリューションは、Fargateで1秒あたり選択した数のトランザクションを生成する数千規模の接続ユーザーを簡単にシミュレートできます。 本エントリでは、AWSの負荷テストソリューションを使った負荷テストを紹介します。 構成要素 公式の構成図を拝借しています。 フロントエンドでは、バックエンドの負荷テストエンジンを実行するAPIと、テストシナリオの作成やモニタリングに使用するウェブコンソールが提供されています。 なお、使用するテストシナリオにはJMeterのシナリオを指定できるため、既にJMeterを使っている場合は簡単に大規模な負荷テストを行うこともできます。 バックエンドでは、負荷を生成するためのDockerイメージを作成します。イメー
Marek Bartik Kubernetes、AWS、DevOpsをはじめ、インフラストラクチャーへの深い知識と情熱を捧げるソフトウェアエンジニア。NoOps/NoCodeのマニアでもある。 この記事は、著者の許可を得て配信しています。 https://blog.pipetail.io/posts/2020-05-04-most-common-mistakes-k8s/ 次の記事 (後半)Kubernetesでのよくある失敗10選 私たちは長年のkubernetesを使ってきた経験の中で、かなりの数のクラスタを見る機会がありました(GCP、AWS、Azure上で管理されたクラスタと管理されていないクラスタの両方です)。そして間違いが何度も繰り返されているのを目にします。これは決して恥ずかしいことではありません。みんな同じように間違いを繰り返しているのですから。 そこで、今回は私たちがよく
Containers AWS and Docker collaborate to simplify the developer experience Developers can now use Docker Compose and Docker Desktop to deploy applications to Amazon ECS If you were to ask any developer who has worked with containers, you find out they have used or are aware of Docker Desktop and the Docker CLI for building applications on their desktop. They’ve also most likely used Docker Compose
SREチームの藤原です。KAYAC Advent Calendar 2021 4日目の記事です。 早速ですが Amazon ECS をお使いの皆様、何か新しく起動したい ECS タスクがあって、タスク定義を書き起こして(もしくはマネージメントコンソールで定義して)、一発で起動に成功できますか?? ……なかなかこれが難しいんですよね。 ということで、とある ECS タスクに関連するイベントとログを全部時系列で出力するツールを書きました。どうぞご利用ください。 github.com 以下はそこに至るまでの背景です。 ECS タスクが立たない。なぜだ! 自分は Amazon ECS を業務で使い始めて早4年になります。新規プロダクトはもちろん、かつて EC2 で動いていたワークロードもほぼ全て ECS に移行しました。 ECS デプロイツール ecspresso の開発者でもあるため、日々機能ア
今年読んだ技術書籍やレポートなどをざっくりまとめてる.Infrastructure Engineer・Platfomerとして日々の業務に直結するものから1年くらいかけてやっていきたいと思っていることなどを中心に. Kubernetes 業務ではメインにKubernetesを使っているのでKubernetesに関わる書籍は発売されれば大体目を通すようにしている. 今年発売されたので良かったのはProgramming Kubernetes.この本はCRDやOperatorによってKubernetes nativeなアプリケーションを構築することにフォーカスしている.昨年のJapanContainerDaysでのMicroservices Platform on Kubernetes at Mercariでも話したようにKubernetesを使う大きな理由の1つはその拡張性にある.Kubebu
個人的な感触ですが、ECSとEKSを並べてみた場合、ものすごい単純に以下の感想でした。 「できることはEKSのほうが多い。けど、そのぶん習得がECSより難しい」 よく考えるとこの「難しい」という単語、簡単に使ってしまいがちなんですが使い方を間違えると非常に危険な言葉だとも思ってます。それは「誰にとっての難易度か?」という観点が抜け落ちがちだから。 AWSにおいてコンテナワークロードを展開しようと検討する人は様々いると思いますし、その組織や担当者の技術スタックも千差万別でしょう。kubernetesの経験は豊富だけれどAWSの経験はあんまりない、またはその逆、もしくはDockerは散々さわっているけれど、オーケストレーションツール自体が初めての人など。 自分の現場経験はECSのほうがEKSより圧倒的に多く、今でも「EKSってやっぱりなんか敷居高いなぁ」と感じてます。でも、よくよく思い出すと最
AWS Fargateについて 清水崇之氏(以下、清水):2つ目の相談にも進みたいなと思います。2つ目に「AWS Fargateの運用とコスト最適化について」というお話をいただいています。 新しいサービスとしてAWS Fargateというものが出てきたので、こちらもAWSのSAから簡単に紹介したいなと思います。 下川賢介氏(以下、下川):AWSの中でコンテナを扱えるサービスが何個かあるんですが、その1つが「Amazon ECS」という、コンテナオーケストレーションできるようなサービスになってきます。コンテナの実行環境ですね。 このECSには2つのタイプがあって、on EC2で動くECSと、on Fargateで動くECSがあります。それぞれ何が違うかというと、AWSで管理してくれる領域が違います。(スライドを示して)青色で書かれているところがお客さまが管理するレイヤーで、黄色で表されている
開発者の皆さまこんにちは!AWS Japan で Prototyping Engineer として働いている友岡です。 今日は AWS Lambda Web Adapter というソリューションをご紹介します。VM やコンテナ用に実装されたウェブアプリを、ほとんどそのまま Lambda でも動かせるようにするツールです。(なお、ここで言うウェブアプリとは HTTP を話す任意のウェブサーバーアプリを指します。) Lambda を初めて触る方がまず戸惑うのが、実行方法が Lambda 特有のものになることではないでしょうか。以下は TypeScript の例ですが、Lambda アプリケーションは基本的にこのようなインターフェースの関数 (ハンドラー) を実行する形になり、また外部からの入力はハンドラーの第 1 引数 event として渡されます。
「ふわわぁ、眠いな。今日も働くかぁ…ってこれまじかよ!!」 朝、5時半に目が覚めて日課のtwitterチェックをしたところ、AWSのコンテナアドボケイトである、Nathan Peck(@nathankpeck)の以下のtweetを発見。 ? We just lowered the price of the EKS control plane from $.20 per hour to $.10 per hour: https://t.co/ABu6RlDJ38 This will make it more cost effective to use EKS with small clusters and applications, while still benefiting from a fully managed, AWS optimized control plane — Natha
セキュリティに限定せず、「コンテナとは何か」から詳細に説明しています。コンテナやセキュリティの深淵に触れてみたい方にお勧めの、遅効性の良書という印象です。 コーヒーが好きな emi です。 コンテナを使ったアーキテクチャは引き合いも多く、私も常々しっかり学ばねばならないと思っていました。そんな折、以下のイベントでコンテナセキュリティに関する内容で登壇をすることになりました。 コンテナセキュリティについて学ぶため「コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術」を読みましたので、本記事では本書の概要と感想を記載します。 書籍情報 書籍タイトル : コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術 著者 : Liz Rice(著)、株式会社スリーシェイク(監修)、水元 恭平、生賀 一輝、戸澤 涼、元内 柊也(訳) 出版社 : インプレス 出版日
はじめに こんにちは、ブランドソリューション開発本部バックエンド部SREブロックの小林(@mirai_kobaaaaaa)です。普段はWEARやFAANSというサービスのSREとして開発、運用に携わっています。 WEARではAmazon Elastic Kubernetes Service(以下、EKSと呼ぶ)を用いて複数システムのインフラ基盤を構築・運用しています。その中の1つとして、ワークフロー処理の実行基盤が存在しています。 本記事では、そのワークフロー実行基盤が抱えていた課題と、それらをどのように解決したのかを紹介します。また、付随して得られたメリットについても紹介いたします。 目次 はじめに 目次 WEARにおけるワークフロー ワークフロー処理内容 ワークフロー実行基盤の構成 ワークフロー実行基盤の課題 コスト内訳の調査 過剰なPodスペック Fargate実行時間の増大 ワーク
マイクロソフト、「.NET 7」にDockerコンテナイメージ生成機能を搭載、Dockerファイル不要に これまで.NETアプリケーションをDockerコンテナ化するには、Dockerコンテナイメージの生成に必要なファイルを記述したDockerファイルを作成し、ビルドツールを用いて生成する必要がありました。 新たに.NET 7で搭載されるDockerコンテナイメージの生成機能ではDockerファイルの作成などは不要で、標準のdotnetコマンドを実行することで簡単にDockerコンテナイメージが生成されるようになります。 Linux版のDockerイメージ生成に対応、今後Windows版の開発も進める 下記はマイクロソフトが紹介した、.NET 7を用いてDockerコンテナイメージを生成し、実行するまでのコマンドのサンプルです(一部横幅が足りなくて改行されているコマンドがあります)。これだ
こんにちは、技術部プラットフォームグループのそめやポチです。最近はpng形式の画像をjpeg形式に変換する仕事をしています。 この記事では、私が社内のKubernetesクラスタのお世話をしているときに出会ったトラブルとその解決方法、またトラブルが起こった原因について説明します。トラブルの原因についてはKubernetes, Nginx, Linuxの3つのプロダクトについて、コードリーディングをしながら解説します。 直面した事象 急にKubernetesクラスタ内のNginxコンテナが起動しなくなりました。 GMOペパボが提供しているサービスの一つであるminneでは、検証用のKubernetesクラスタを利用しています。本番環境で使用しているKubernetesクラスタを模倣した、開発・検証のための環境です。そのクラスタ内でトラブルが起きていました。 トラブルの説明をするために、まずこ
Just writing about Rust stuff, Python automation, random tech subjects, and anything related to the world, virtual or not, dreamt or real. Website moved to litchipi.site, nothing new will be published there. All the articles can be read from the new website
最近Dockerという言葉を聞くけれども、よくわからない。新しい技術なので、そう思う人も多いでしょう。それは体験が足りないからです。ひとまず体験すれば、Dockerの便利さがすぐにわかると思います。この連載では、Dockerの利点を生かし、業務に必要となりそうなさまざまなサーバーを手早く簡単に作っていくことを目指します。第1回は、Dockerの仕組みと基礎知識を簡単に説明します。 対象読者 Linuxの基礎コマンドを少し知っている方 簡単にサーバーを構築したいインフラ技術者、開発者 Dockerとは Dockerの便利さは、システムを稼働するのに必要なサーバーを短時間で作れることにあります。サーバーに必要なソフトウェアがインストールされた出来合いのDockerイメージ(ダウンロードしてすぐに実行できるパッケージのこと)が多数公開されているので、こうしたものを使えば早ければ5分、複雑なもので
こんにちは、ビコーペガサスです。この度、「Docker/Kubernetes 実践コンテナ開発入門 改訂新版」を出版します。本書は2018年に出版した初版を全面改訂したものです。 【新刊】2024年2月24日発売『Docker/Kubernetes実践コンテナ開発入門 改訂新版』本体3,600円+税,山田明憲 著,Docker/Kubernetesを実践で使いこなす!コンテナ開発・運用の第一歩!https://t.co/jRfsDFnuKu pic.twitter.com/dd0qo4DZM1 — 技術評論社販売促進部 (@gihyo_hansoku) February 13, 2024 「改訂新版」のモチベーション 初版の出版から早5年半が過ぎ、コンテナ技術の情報は大きく変化しました。コンテナ技術の基本的な部分は変わらないとはいえ、初版の内容が陳腐化するだけの時間が流れたことは否定しよう
おなじみの画像 JavaやScalaといったJVM言語のDockerイメージは、JVMを同梱しなければならない都合で肥大化しがちである。特に何もしなくても、例えば一般的なamazoncorretto:21のイメージサイズは217.7 MBもある。 hub.docker.com これにさらにビルド済みのJARファイルが載ってくるので、結構大きくなってしまうのだ。 そこで、Scalaのコンテナイメージのサイズをなんとか小さくできないかと、考えた。すると、JVMを使ったまま70 MiBくらいに縮めることができた。 github.com コンテナイメージのサイズを小さくするために、何をしたかを書いていく。ちなみに題材としたアプリケーションはちょっとしたHello, Worldをするだけのもので、ライブラリはCatsに依存させた。 JVM使う編 マルチステージビルドを行う Alpineなどの軽量ラン
*1 デフォルトでは Pod に割り当て可能なセカンダリ IP アドレスを ENI 1個分(その ENI に割り当てできる最大数)確保する設定ですが、実際には DaemonSet などがありすぐに ENI 1個分の空きという条件は満たさなくなるので、ワーカーノード起動時に ENI 2個分(「そのインスタンスタイプが ENI ごとに割り当てできる IP アドレス数」の2倍)が確保されるということになります。ドキュメントとしては次のリンクをご参照ください。 参考: https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/cni-env-vars.html 参考: https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/cni-proposal.md 例えば、ピーク時に c5.4x
こんにちは。EC基盤グループの宮口(@smiyaguchi)と池田(@progrhyme)です。 モノタロウではKubernetesのマネージドサービスであるGoogle Kubernetes Engine(以下、GKE)を利用しています。 このKubernetesですがとても便利な反面、管理が大変で開発者がアプリケーションの開発とKubernetesの運用を同時に行うのは負荷が高くなりあまり好ましくありません。 そこでモノタロウでは開発と運用を分離できるように、社内でGKE共通環境と呼んでいるマルチテナント方式のクラスタによるアプリケーションの実行基盤を構築しました。 今回はその紹介をします。 マルチテナント・シングルテナントとは? なぜマルチテナントのGKE環境を作ることにしたのか 全体概要 前提・環境情報 GKE共通環境の特徴 Namespace・ノードプールの分離 RBACによる権
基盤チームの右京です。 BASE ではショップのデザインを誰でも簡単にできるような、いわゆるノーコードな機能を提供しています。 デザイン | BASE (ベイス) ネットショップを無料で簡単に作成 この記事では、そんなノーコードなシステムの裏側について、簡単にですが解説しています。 ショップページ配信の基盤システム ノーコードの前にまず BASE のショップページ(ShopFront と呼んでいます)がどのようなシステムかを知っておく必要があります。BASE のショップページは特定の URL にアクセスすると必要なデータをデータベースから取得し、テンプレートエンジンを使ってサーバーのプログラムで HTML を生成して返す、よくある伝統的な Web ページとして実装されています。ただし、ショップ毎にページのデザインは全く異なるため、1 つの固定のテンプレートを利用しているわけではなく、ショッ
KubeFest Tokyo 2020は、Kubernetes を利用している人、これから導入したい人が新しいことを学んだり、ネットワーキングすることを狙いとして開催するワンデイのオンラインイベントです。Kubernetes環境におけるCI/CDの問題をOpen Policy AgentとSpinnakerを導入することで解決する方法について、メルペイの山下氏が話をしました。前半はメルカリのマイクロサービスアーキテクチャについて。 自己紹介とアジェンダ 山下慶将氏(以下、山下):「Open Policy AgentとSpinnakerで実現するマイクロサービスの安全な継続的デリバリー」というタイトルで発表いたします。よろしくお願いします。 はじめに自己紹介します。山下慶将と言います。Twitterは@_k_e_k_eでやっているので、よかったらフォローしてください。今はメルペイSREに所属
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く