タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
はじめに この記事は、以下のlwn.netの記事を抄訳したものです。 lwn.net CPU Namespaceのご紹介 これはCPU namespaceのインターフェスとそのメカニズムを証明するための初期プロトタイプです。 現状におけるCPUリソースの制限方法 Linuxカーネルでは、タスクのCPUリソースを制御するために2つの方法を提供します。 cgroup cpuset: 該当のグループにアタッチされた単一または複数のタスクの集合に対し、CPUリソースを制限するためのメカニズムです。 syscall sched_setaffinity: CPUの集合に対して特定のタスクをピニングするためのシステムコールです(訳注: NUMA利用時の条件下などにおいてよく利用される手法)。 また、カーネルはシステムにおいて利用可能なCPUリソースを閲覧可能にするために3つの方法を提供します。 sys/
結論から 公式の TypeScript ドキュメントの何処にも namespace を非推奨と示唆する記載は無い。 尚且つ microsoft/TypeScript#30994(comment) で TypeScript チームのリード開発者である Ryan Cavanaugh 氏が述べているように将来的に廃止される事も無い。 TypeScript の namespace について調べると公式では無い記事や投稿で非推奨(deprecated)というワードが目立つ事、tslint や typescript-eslint を使用していると namespace の使用で注意されてしまう事などから非推奨と認識されてしまっていると推測する。 個人的に「非推奨」という強いワードは「使用するな」というメッセージ性を感じる。開発者同士の間で誤解を生みかねないため namespace は非推奨では無いと伝え
概要 Linuxには名前空間(Namespace)というカーネルの機能が提供されています。 これは1つのプロセスが1つのリソースセットを参照し、別のプロセスが異なるリソースセットを参照するようにカーネルリソースを分割する機能です。 その中の1つであるネットワーク名前空間(Network Namespace)の機能を学んでみます。 環境 Ubuntu 18.04 ip netnsを使ってみる 初期状態 デフォルトのUbuntuでは以下のように2つのNICが存在します。 lo enp0s3 コマンドで確認します。 $ ip l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:0
Linuxカーネルに実装されているコンテナ関連の技術のうち、Namespaceとネットワーク関連の機能について解説する本です。 Linuxにおける「コンテナ」は単一の機能として存在しているわけではありません。Linuxカーネルに実装されているさまざまな機能を組み合わせて「コンテナ」が作られます。コンテナで使われるさまざまな機能のうち、この本では「この機能があるからコンテナと呼べる」と言っても良い基本的な機能であるNamespaceと、コンテナのネットワークで使われる機能について解説します。 特定のコンテナランタイムを使うことなく、Linuxにインストールされている基本的なコマンドを使ってNamespaceとネットワーク機能をわかりやすく解説します。 内容はgihyo.jpで連載している「LXCで学ぶコンテナ入門」の一部をベースにしています。本書では記事中の実行例を新しい環境で確認し、記載を
はじめに 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にマッピングすることで、見せか
Dockerコンテナの仕組み -namespace、cgroup、overlayfs- ここまでDockerを使ったコンテナの操作について説明してきました。今回はコンテナの要素技術について解説していきます。 Dockerコンテナの特徴には次のようなものがあります。 コンテナのシステムリソースの隔離 ファイルのレイヤ構造 コンテナ間の通信 Dockerコンテナでは上記機能を実現するためにいくつかのLinuxが持つ機能を利用しております。主要なものとして以下の3つがよく挙げられます。 overlayfs namespaces cgroups ここらからコンテナの3つの特徴を実現するための要素技術について見ていきたいと思います。 コンテナのシステムリソースの隔離機能 コンテナはOSカーネルが持っている環境を隔離する機能を使っています。コンテナごとに、1つの仮想マシンのように独立した環境を持つこと
今回は「Linuxで動かしながら学ぶTCP/IPネットワーク入門」に載せようか悩んで、結局は載せなかった内容のひとつを扱う。 Linux の Network Namespace を使って作った 2 台のルータを、Keepalived (VRRP) を使ってホットスタンバイで冗長化する構成を組んでみる。 つまり、2 台のうち 1 台のルータに障害が起きても、残りの 1 台が役務を引き継いで通信を継続できる状況を再現する。 使った環境は次のとおり。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal $ uname -srm Linux 5.4.0-107-generic aarch
Namespaceはコンテナで使われている技術の一つで、コンテナを理解深めるために知っておくとよいので調べてみた。 どんな使われ方をしているかというと、 例えばPID namespaceはPIDの number spaceを隔離する。 これは同じホスト上で実行されている2つのプロセスが同じPIDを持つことができるということになる。 namespaceがなくて隔離されてないとコンテナAがコンテナB、C、Dなどに filesystemのunmountやホスト名の変更、NWインターフェースの削除など できたりしてしまうので、必ず他のコンテナのプロセスがみれないようにする。 Namespace Kernel/OSのリソースで、物理リソースは制限しない(cgroupsでする)が、 以下の項目についてNamespaceを分離する。 namespaceを分離した環境では、許可されたリソースしか見えなくな
今回は、iproute2 の ip-netns(8) を使わずに、Linux の Network Namespace を操作する方法について書いてみる。 目的は、namespaces(7) について、より深い理解を得ること。 使った環境は次のとおり。 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS" $ uname -r 5.4.0-1043-gcp もくじ もくじ 下準備 前提知識 unshare(1) / nsenter(1) / mount(8) を使って操作する unshare(2) / setns(2) / mount(2) を使って操作する 参考 下準備 あらかじめ、必要なパッ
システム開発 2020/11/12 Kubernetesとは何かを図でわかりやすく解説!Pod、Namespaceも 『Kubernetes』とは、コンテナ仮想化ツールの運用管理・自動化を行うために開発されたオープンソースソフトウェアのことです。マイクロサービスとの相性が良いなど、さまざまなメリットがあるKubernetesの知識は、ITトレンドを追従するエンジニアにとって欠かせません。 この記事では、Kubernetesの基礎知識やメリット、Dockerとの関係性や、Kubernetesに関連する用語を解説します。 Kubernetesとは何か?わかりやすい図で解説 「Kubernetes」とは、Dockerなどのコンテナ仮想化ソフトウェアを管理、および自動化するためのオープンソースソフトウェア(OSS)のことです。 “クバーネティス”や“クーべネティス”と読み、K8s (ケーエイツ)や
2019.07.31 週刊Railsウォッチ(20190730-2/2後編)Docker 19.03の新機能に注目、ngrokはスゴい、redis-namespaceほか こんにちは、hachi8833です。Rails 6.0.0 rc2リリースがやっと公式にアナウンスされました。 元記事: Rails 6.0.0 rc2 released | Riding Rails(Rails公式ニュースより) 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください ⚓週刊Railsウォッチ「公開つっつき会」第13回のお知らせ(無料) お申込み: 週刊Railsウォッチ公開つ
Alexey Gladkov <legion-AT-kernel.org>, Andrew Morton <akpm-AT-linux-foundation.org>, Christian Brauner <christian.brauner-AT-ubuntu.com>, "Eric W . Biederman" <ebiederm-AT-xmission.com>, Jann Horn <jannh-AT-google.com>, Jens Axboe <axboe-AT-kernel.dk>, Kees Cook <keescook-AT-chromium.org>, Linus Torvalds <torvalds-AT-linux-foundation.org>, Oleg Nesterov <oleg-AT-redhat.com> Preface ------- These p
network namespaceとは Linuxに備わっているnetwork namespace機能を用いることで、IPに関する処理を1台のLinuxの中で複数に分割することができます。ネットワーク機器でいうところのVRF(Virtual Rouring and Forwarding)に近いことができます。 network namespaceを使うことで、Linux 1台だけで複数台の機器をエミュレートできるのでいろいろ遊べそう。 構成図 作ってみるネットワークはこんな感じ。 ルータ2台の両端に端末があるだけのthe simpleという構成。 物理NW構成図 論理NW構成図 作成 network namespace(≒仮想ノード)作成 ip netns addでnetwork namespeceを作成します。root権限で実行する必要があります。 先の物理NW図で箱が4個あるとおり、4個
Namespace Import に補完を効かせる TypeScript Language Service Plugin[1]、typescript-plugin-namespace-import を作りました。 そのモチベーションと使い方を紹介します。 TL;DR 普通のオブジェクトを名前空間として用いると Tree Shaking が効かずバンドルサイズが膨らむ Namespace Import を用いれば Tree Shaking が効く しかし Namespace Import は Default Export と同様に補完が効かない TypeScript Language Service Plugin でファイル名を用いた補完を効かせていいとこ取り! モチベーション 大規模なコードベースでは、全ての関数を無邪気に Named Export していると補完に全て出てきて開発体験が悪
はじめに 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にマッピングすることで、見せか
本連載では、エンタープライズシステムでコンテナ/Kubernetesを活用した業務システムを開発・運用するエンジニアに向けて、知っておくべきKubernetesセキュリティの基礎知識、Microsoftが提供するパブリッククラウド「Azure」を使ったクラウドでのKubernetesセキュリティ対策のポイント、気を付けておきたい注意点などの実践的なノウハウを紹介します。 今回より、コンテナセキュリティの基礎となる、以下のコンテナ技術について3回に分けて説明します。 カーネルの分離 namespace リソースの分離 cgroup namespaceとcgroupで下から見るKubernetes 初回となる今回は、カーネルの分離を実現するために利用されているnamespaceを取り上げます。 コンテナはOSを論理的に分割し、隔離された空間でアプリケーションを動作させる技術です。したがって、よ
Infra Study Meetup #5 で使用したスライドです。 複数のチームでひとつの Kubernetes クラスタを共有したい場合、Namespace に紐づいた Role や Policy を使用することでチームごとに環境の管理が容易になります。しかし通常の Namespace はフラットな構造しか表現できないため、ある程度複雑な組織では Namespace を用いた各チームへの管理の移譲がうまくいかないケースがあります。 この問題を解決するために、階層構造を持つ Namespace を仮想的に扱うためのツール Hierarchical Namespace Controller (HNC) の開発が進められています。本セッションでは、デモを交えて HNC の仕組みについて紹介しました。 イベント概要:https://forkwell.connpass.com/event/183
rails_namespace_rule.md 1. データ取得系 下に行くほど、深度があがる 1-1. View Model / View Object 画面やAPIなど、レスポンスに沿った内容をまとめたオブジェクト 1-2. Collector Object / Finder Object 1つのテーブル、またはそれに関連するテーブルを取得するオブジェクト 1-3. Query Object DBから取得する際に発行するクエリを定義するオブジェクト 1-1. View Model / View Object 内容 レスポンスの返却値をまとめたオブジェクト。 RailsのViewに返すオブジェクトであれば、インスタンス変数ごとにメソッドを切って、取得処理をメソッド内で行う。 ネームスペース・クラス名 app/view_objects/コントローラー名/アクション名_view_object
背景 個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。 その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。 引用や参考と今回の自分の勉強用の書籍の紹介 技術評論社『Kubernetes実践入門』のサンプルコード Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方 実際の学びについて 書籍を読みながら、章ごとに少しずつ進めていきたいと思います。 GitHub のソースコードも使いながら学んで行きたいと思います。 勉強開始 ここから namespace を学んでいきます。 https://github.com/kubernetes-practical-guid
Cluster Scoped Resources: much more powerful than simple namespaces (virtual clusters allow users to use CRDs, namespaces, cluster roles etc.) Ease of Use: usable in any Kubernetes cluster and created in seconds either via a single command or cluster-api Cost Efficient: much cheaper and efficient than "real" clusters (single pod and shared resources just like for namespaces) Lightweight: built upo
こんにちわ がじぇったー (@hackmylife7) | Twitter です。ガジェット情報をいち早くツイートすることを生きがいにしているのでよかったらフォローください。 今日はk8sのNamespaceとResource Quotaについてです。 TL;DR(要約) Namespaceについて ResourceQuotaについて TL;DR(要約) 複数のチームが同一の物理リソースで複数のクラスタを立ち上げる場合はNamespaceを用い環境を仮想的に分離する Namespaceごとに使用できるリソースを制限することで、一つのチームがリソースを食い過ぎて他の環境に影響を与えてしまう、といった事態を防ぐことができる Namespaceについて Namespaceは同一の物理リソース上で稼働するKubernetesクラスタを複数の仮想クラスタに分割するKubernetesオブジェクトであ
こんにちは、2023年に新卒で入社し、クラウドハウス採用事業部でバックエンドエンジニアをしている上野(izumitomo)です。最近ではスクラムマスターとして働いています。 本記事では、RubyKaigi 2024の1日目のSatoshi Tagomori(@tagomoris)さんによるセッション『Namespace, What and Why』について紹介させていただきます。 Namespaceとは 本セッションはNamespaceという、Rubyのコードを隔離された別々の空間に分ける開発中の機能がテーマです。 ここにおけるNamespaceとは、アプリケーションやライブラリを隔離された空間上で読み込むものです。 Namespaceの実現のためには以下の3つの処理が必要となります。 ある空間でアプリケーション・ライブラリを読み込む 読み込んだことによる影響を他の空間から隔離する その空
このページに記載されている情報は古い可能性があります このページの更新日は英語版よりも古いため、記載されている情報が古い可能性があります。最新の情報をご覧になりたい方は英語版のページをご覧ください: Namespaces Kubernetesは、同一の物理クラスター上で複数の仮想クラスターの動作をサポートします。 この仮想クラスターをNamespaceと呼びます。 複数のNamespaceを使う時Namespaceは、複数のチーム・プロジェクトにまたがる多くのユーザーがいる環境での使用を目的としています。 数人から数十人しかユーザーのいないクラスターに対して、あなたはNamespaceを作成したり、考える必要は全くありません。 Kubernetesが提供するNamespaceの機能が必要となった時に、Namespaceの使用を始めてください。 Namespaceは名前空間のスコープを提供し
In this blogpost I’ll explain my recent bypass in DOMPurify – the popular HTML sanitizer library. In a nutshell, DOMPurify’s job is to take an untrusted HTML snippet, supposedly coming from an end-user, and remove all elements and attributes that can lead to Cross-Site Scripting (XSS). This is the bypass:
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く