2022/06/13に「ニコニコ生放送 WebフロントエンドのKubernetes移行ハンドブック 2022」を公開しました。本発表ではハンドブックの内容とともに、WebフロントエンドにおけるKubernetesへの移行と運用がどのようなものか紹介します。 Playground
2022/06/13に「ニコニコ生放送 WebフロントエンドのKubernetes移行ハンドブック 2022」を公開しました。本発表ではハンドブックの内容とともに、WebフロントエンドにおけるKubernetesへの移行と運用がどのようなものか紹介します。 Playground
// Node is a structure used to represent a parse tree. type Node struct { Value string // actual content Next *Node // the next item in the current sexp Children []*Node // the children of this sexp Attributes map[string]bool // special attributes for this node Original string // original line used before parsing Flags []string // only top Node should have this set StartLine int // the line in the
Kubernetesとその関連コードのコードリーディングをする上で知っておくと良さそうなことについて知ってる範囲で雑にまとめてみました 前提知識前提として最低限Kubernetesをある程度触っていて KubernetesはPodとかのリソースと呼ばれるものでコンテナだったりロードバランサーとかを管理するようになっていて実際にDeploymentでコンテナを立ててService/Ingressでコンテナで立てたアプリケーションを外部公開できてコンテナはPodという単位でコンテナをグループ化して同一Nodeで実行されるということを知っているくらいがわかっていればまぁ十分なんじゃないかとは思います あとはKubernetesはGoで書かれているので Goの基礎知識とVSCodeやGolandなどGoのコードを読む際に宣言にジャンプできるようなエディタくらいがあると良いと思います Kuberne
https://github.com/yuemori/kube_queuegithub.com 概要 ActiveJobでKubernetesのJobを作るgemを作ったよ ActiveJob作る場合はrailsのソースコードを読むのがおすすめ KubernetesのAPIを叩くのは意外と簡単で楽しい きっかけ ruby-jp slackの #container チャンネルで、kubernetesでのsidekiqが話題になりました。 そういえば、個人的にsidekiqのdockerでのデプロイをいい感じにできないものかと悩んでいます。 デプロイする前にsidekiqのquietして、workerプロセスが全部死んでから、 デプロイする必要があって、長いジョブがいるとなかなかデプロイされずに困るんですよね。 コンテナじゃなければ、quietした後、同じサーバーの中でまたsidekiqを立ち
世の中にはseccompというものがあり、知られています。皆さんはBPFですか。人は、、、 seccompについては以前書きました。Linuxのシステムコール呼び出しをフィルタリングして許可したり禁止したりするものです。 udzura.hatenablog.jp さて今回、拙作 mruby-seccomp で SCMP_ACT_TRACE アクションをサポートしました。その辺の話をしてみます。 libseccompのコンテクストに SCMP_ACT_TRACE のアクションを追加してロードすると、当該システムコールの呼び出しを ptrace(2) でトレースできます。 ptrace(2) は普通、あらゆるシステムコールを SIGTRAP で止めるみたいな動きをしますが、特定のシステムコールのみを停止でき、またシグナルも SIGTRAP ではなく別のものとすることができます。 ptrace(
今回は、Webサーバの実装に依存することなく、OSレイヤでWebサーバソフトウェアが起動時に実行するであろうシステムコールを監視して、そのタイミングでプロセスをイメージ化する方法(PoC)について紹介します。 その前に、まずは前提の一致ということで、僕は以前から、Webサーバプロセスの性質について、プロアクティブ性とリアクティブ性という分類について述べてきました。 プロアクティブ性とリアクティブ性について簡単にまとめると、以下のようになります。 Webサーバ機能のプロアクティブ性とリアクティブ性 突発的なアクセス集中のような変化に耐えうるシステムを構築するためには,負荷の状態に基いて適切なインスタンスの数を決定し,必要以上にコンピュータリソースを使用しないように設計することも重要である. 単一のサーバに高集積にホストが収容可能であり,ホスト単位でのリソース管理を適切に行いながら,セキュリテ
I've used Linux containers directly and indirectly for years, but I wanted to become more familiar with them. So I wrote some code. This used to be 500 lines of code, I swear, but I've revised it some since publishing; I've ended up with about 70 lines more. I wanted specifically to find a minimal set of restrictions to run untrusted code. This isn't how you should approach containers on anything
この文章について Dockerコンテナ上で実行するor実行中のプロセスを strace コマンドでトレース・アタッチする方法を説明します。 デバッグや、パフォーマンス測定時に利用してみてください。 注意: セキュリティレベルが低下するので、本番機など外部にさらされるコンテナへの実行は行わないでください。あくまで外部から隔離された環境のみとしてください。 筆者の環境 Docker for Mac 17.03.1-ce-mac12 (17661) macOS 10.11.6 はじめに Dockerコンテナ上で動くプロセスは、そのままですと strace コマンドが正常に動作しません。Dockerコンテナ起動時のオプションを追加する必要があります。 例えば、なにもしないと、次のエラーメッセージが表示され、コンテナ上のプロセスをアタッチすることができません。 # ps auxwwf | grep
RasPi用のRustバイナリをクロスコンパイルする環境が欲しかったので dockerでその環境を構築して誰でも利用できるようにdocker hubに登録した ビルトと実行について TL;DR ビルドコマンド dockerがインストールされている環境で以下のコマンドを実行する docker run -it --rm -v ${PWD}:/source yasuyuky/rust-arm cargo build --release --target=arm-unknown-linux-gnueabihf ビルド結果格納先: target/arm-unknown-linux-gnueabihf/release/ ビルド方法(もう少し長い版) dockerが実行可能な環境で以下のようにすればARM上で実行可能なバイナリが作成可能。 Rustのプロジェクトディレクトリに移動して
reloadできるunicorn+railsのDockerイメージを作れそうだったので作ってみた。 以下、登場人物。 Dockerfile FROM ubuntu:xenial MAINTAINER Genki Sugawara <sgwr_dts@yahoo.co.jp> USER root WORKDIR / RUN apt-get update RUN apt-get install -y ruby RUN apt-get install -y ruby-dev RUN apt-get install -y build-essential RUN apt-get install -y zlib1g-dev RUN apt-get install -y libxml2-dev RUN apt-get install -y libsqlite3-dev RUN apt-get insta
目的 ngx_mrubyを使ってバックエンドのコンテナを切り替えることができるのかやってみました。 dockerを使いたいと思いつつも、ダウンタイムなしでdeployするにはこうしておけばよい、 という簡単な方法がないようでした。この方法は汎用的に使えるのではないかと思います。 サンプルを動かす 一式をGithub(https://github.com/muk-ai/rest-api) に置きました。 network機能を使うので docker >= 1.10, docker-compose >= 1.6 でお試しください。 git clone https://github.com/muk-ai/rest-api.git cd rest-api/ git checkout 1f978500008e2126fdce2b31b1d4e189520e069b docker-compose bui
この記事は mod_mruby ngx_mruby Advent Calendar 2014 8日目の記事です。 mod_mrubyを使って、プレビュー環境をDockerコンテナで作成するプロキシサーバ「pool」を作りました。 mookjp/pool 主に私と、mod_mruby ngx_mruby Advent Calendar 2014の12日目にエントリーもしているainoyaと2人で開発しています。 poolについて 概要 http://<ブランチ名 or GitのコミットID>.pool.dev/のようなURLへアクセスすることにより、このコミットIDの状態のアプリケーションをプレビューすることができます。 URLへのアクセスがトリガーとなるので、プレビュー用の環境作成を開発者以外が実行することも可能です。 デザイナーやディレクターでも、見たい状態のコミットIDを含むURLをを
Go でアプリケーションを作ると、そのまま他になにもなくとも実行できるバイナリが出来あがります。この特性によりデプロイが大変楽です。 このような特性があるので、 Go を使う場合 Docker のようなオーケストレーションツールを使わなくても多くのサーバーにアプリをデプロイしていくことも可能かと思われますが、そこはまあ Docker という巨人に乗っておくと楽なことが多いです。具体的には swarm と docker-compose が便利なので Docker 上で実行したい。 ここで問題となってくるのが何も考えずに Docker イメージを作るとイメージサイズが膨れあがってしまってシングルバイナリによる手軽さなどが損なわれてしまうという点です。 たとえば golang:alpine のような比較的小さいイメージを使ってもファイルサイズはバイナリサイズ + 300MB ほどにもなってしまい
Learn Docker With My Newest Course Dive into Docker takes you from "What is Docker?" to confidently applying Docker to your own projects. It's packed with best practices and examples. Start Learning Docker → Updated on April 13th, 2018 in #docker, #ruby-on-rails Dockerize a Rails 5, Postgres, Redis, Sidekiq and Action Cable Application with Docker ComposeLearn how to install and use Docker to run
check_docker_container.sh ��.� V �o�� V #!/bin/bash # Author: Erik Kristensen # Email: erik@erikkristensen.com # License: MIT # Nagios Usage: check_nrpe!check_docker_container!_container_id_ # Usage: ./check_docker_container.sh _container_id_ # # Depending on your docker configuration, root might be required. If your nrpe user has rights # to talk to the docker daemon, then root is not required. T
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く