linux

mount propagation

特定のマウント処理を他のディレクトリやnamespaceで認識できるようにするかどうかを、制御する仕組みとしてshared subtreeが存在する。 例としてプロセスのカレントディレクトリや、chrootで変更した配下に対して、外部ディレクトリのマウント処理を反映し…

仮想マシンの初期設定をするcloud-init

cloud-initとは OpenStackやAWSのEC2などIaaSを利用しVM(Virtual Machine)の払い出しをした後、ユーザアカウントの作成やソフトウェアのインストールなどの初期設定を自動化したくなる。 構成管理ツールとしてAnsibleやChefが存在し、ロールベースの複雑なセ…

cloud-initのNoCloudを使ってお試し環境を簡単に構築する

以前cloud-initについて紹介をした。 blog.ty-tbs.com cloud-initの仕組みはVMを決まったユーザや鍵を使ってセットアップしたり、指定スクリプトを実行したりとクラウドプロバイダ経由でなくても利用したい機能である。 自宅にOpenStackを構築していれば、Da…

CNIの役割

最近のパブリッククラウドを利用している人はあまり意識しないかもしれないが、手動でKubernetesクラスタを構築したことのある人ならCNIという単語は聞いたことがあるだろう。 CNIプラグインはKubernetesであればpodの通信が通るネットワークの管理を行って…

Dockerはどのようにリソース制限しているか

Dockerを利用してコンテナを動かすと、様々なリソースをLinuxのnamespaceを利用してプロセスを独立させている。 コンテナを立ち上げる際にDockerではリソース使用量の制限を行うことができるようになっている。 例えばdocker run実行時に--memory=256mbを指…

cgroupv2について理解する

前回はcgroupv1の仕組みついては書いたが、今回はLinuxカーネル4.5以降で道入されているcgroup v2について触れる。 blog.ty-tbs.com cgroupはLinuxリソースを制限したり管理するための機能であり、cgroupfsというファイルシステムを経由して操作管理すること…

cgroupについて理解する

cgroupはカーネルが提供するリソースコントロールのための仕組みである。プロセスをグループ化してCPUやメモリの使用量を制限や記録することができる。 この仕組はコンテナなどの仮想化技術のリソースマネジメントにも利用されていて大きな役割を担っている…

cgroup namespaceの役割と動き

Linuxに実装されているnamepsaceはいくつかあるがその中でも比較的新しく、近年の仮想化需要に対応したものがControl group(cgroup) Namespaceである。 cgroup namespaceはカーネル4.6から導入されている。 cgroup namepsaceを分割する意味 コンテナによる仮…