Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Elasticsearch, Kibanaはそれぞれ最新のものをpullした。Fluentdは1.20。(このバージョンで動作が確認できたため) Elasticsearchの設定 ServiceとReplocation Controller (controller) を定義する。 Serviceの定義 serviceはL3ロードバランサーみたいなもので、podに対してアクセスを振り分ける機能を持つ。 apiVersion: v1 kind: Service metadata: name: elasticsearch-logging namespace: NAMESPACE labels: k8s-app: elasticsearch-logging kubernetes.io/cluster-service: "true" kubernetes.io/name: "Elasticsearc
kubectl apply はオブジェクトが存在しなければ作成し、存在すれば差分を反映してくれる便利なコマンドです。しかし差分の反映は単純な上書きではないので注意が必要です。この記事では Kubernetes Meetup Tokyo #5 で発表した内容をベースに kubectl apply の動作を整理してみました。Kubernetes v1.9.0 で確認をしています。 kubectl apply とは kubectl にはオブジェクトを操作する様々なサブコマンドが用意されています。apply 以外の create, replace などのサブコマンドは、現在のオブジェクトの状態を意識して操作をする必要があります。例えば kubectl create では存在する名前のオブジェクトを再度作ろうとするとエラーになりますし、kubectl replace では存在しないオブジェクトを上書
概要 GitLab Runner 1.1 with Autoscalingによると、gitlab-runner自身もスケールできるよ、と。 runnerの環境にいろいろ入れるのは嫌だし、runnnerの環境にDockerを入れてそこで動かすにしても、 メモリやCPUも常時そんなに必要なわけじゃないから、runnner自体は安いインスタンスにしたい。 そう思うのは人情です。 そこで、今回はgitlab-runnerはt2.microの小さいインスタンスで動かし、 実際のビルドは、そこからdocker-machineで作成された先のインスタンス内でやろうと考えたのです。 AmazonLinuxで1からgitlab-runnerを入れ、ビルドできるところまでをステップごとに紹介します。 公式ドキュメントをコピペしていると気づかないつまづきポイントつき! やってみた結果、思ったこと メリット gi
このコマンドはコンテナ内のroot権限だけでなく、ホスト側のroot権限も与えてしまうので簡単にバックドアを設置できてしまうのです。(設置するコマンドは調べればすぐに出てきますが流石にコピペできるように書くのはやばいので) また他にもコンテナを--privileged付きで起動しホストの/をマウントしてchrootするというもっと凶悪な手もあります。 元々sudoが使えるのに、何が問題なの? 問題はユーザーが意図的にdockerコマンドを実行した時には発生しません。問題は悪意のあるプログラムがサーバなどに混入した時や、怪しいDockerfileを使用した場合です。 大抵の悪意のあるプログラムは何らかの手段でroot権限を取得しようとしますが、それはゼロデイ脆弱性であったりそもそもの権限のミスであったりしますが、dockerがインストールされている条件下ならばこの方法で権限昇格を狙ってくる場
概要 ゼットラボではいくつかの CI/CD ツールを利用していますが、その中の一つが Concourse です。Concourse はパイプラインベースの CI/CD ツールで Pivotal により開発されています。Concourse から Kubernetes にアプリケーションをデプロイするための Concourse リソースに我々の要件を満たすものが存在しなかったため、新たに開発し OSS (MIT License) として公開しています。 zlabjp/kubernetes-resource: A Concourse resource for controlling the Kubernetes cluster Kubernetes にどのようにアプリケーションをデプロイするか Kubernetes にアプリケーションをデプロイするには Kubernetes を操作するための C
はじめに Admission Controlとは Admission ControlとはKubernetesのAPI Serverのリクエスト制御の機能です。APIリクエストに対して認証、認可を行ったあとのフェーズで、別途そのリクエストを受け入れるか制御を行います。また場合によって、リクエストの変更や別の操作を行います。 プラグイン形式で複数の制御の方法が用意されており、APIの起動オプション--admission-controlで有効にしたいものをカンマ区切りで指定します。 Kubernetes: Admission Controlとは何か 上記エントリは 1.2 時点でのプラグインを紹介していますが、ここでは 1.2 から 1.8 までに新たに追加されたプラグインについて記載します。 プラグイン一覧 DefaultStorageClass DefaultTolerationSecond
はじめに この記事はDocker Advent Calendar 2017の13日目の記事です。 コンテナ運用はk8sがデファクトにほぼなったような感じはしますが、オンプレのようなマネージドなk8sが無い環境で、コンテナ化を進めるにあたり、いきなりk8sクラスタを作るというのは敷居が高いです。 そこで、少しづつコンテナ化を始める繋ぎとしてdocker-composeとsystemdを使ってカジュアルにdocker運用してみたので、その際のTipsについて記載します。 ちなみにdocker-composeなので当然サーバ間をまたいだオーケストレーションの層は考えず、単に既存サーバのプロセスをコンテナ化して運用することで、まずはサービスの移植性を高めることを目的としています。 docker-composeだけで運用する際の問題点 サーバ単体で複数のコンテナを連携させるにはdocker-comp
この記事はGunosy Advent Calendar 2017の14日目の記事です。 昨日は@harahenikuさんのGoを遅くしないための地味な話でした。 広告技術部の@hoshitocatです。 主な業務はRailsで広告の入稿やレポートのための管理画面の開発をしております。たまにGoで配信側のAPIを触ることがあります。 今回は管理画面でChromeのHeadlessモードを使ったE2Eのテストを導入した話をします。 PhantomJSからChromeへ 私たちはこれまでE2EのテストをPhantomJSを使っていました。 しかし、Javascriptの動作も含めたテストを書いている際に、includes()がPhantomJSだと動作しないことがわかりました。 プロダクトコードをテストコードに合わせて書き直すことも考えましたが、それでは新しく使えるようになった便利な機能をいつま
# 稼働中のコンテナに入る $ docker-compose exec hoge_app bash # stop $ docker-compose stop # docker-compose管理下のコンテナを削除し、紐づくボリュームも削除 $ docker-compose rm -v # キャッシュを使わずにビルド $ docker-compose build --no-cache # コンテナを一括削除 $ docker rm `docker ps -a -q` # 全てのボリュームを削除 $ docker volume rm $(docker volume ls -qf dangling=true) # イメージ一覧 $ docker images -a # イメージ一括削除 $ docker rmi `docker images -aq` $ docker rmi -f `docke
この記事は NTTコミュニケーションズ Advent Calendar 2017 の10日目です。 はじめに 自己紹介 はじめまして。NTTコミュニケーションズでNetwork/Software Engineerとして働いている @TAR_O_RIN です。普段はクラウドのネットワークコントローラの開発をしており,ネットワークとソフトウェアを掛け合わせて世の中をもっと便利に出来ないかなぁと日々考えています。主なスキルセットとしてはL2/L3のネットワーク周りから,Python,Goによるネットワーク設定の自動化が主戦場です。 今回解決したい問題 システム基盤としてDockerが利用されるケースが非常に多くなり携わる機会が多くなってきた。しかし,触れば触るほど我慢できない部分が見えてきた。それはDockerのネットワークである。詳しいDockerネットワークの足回りについては本家のサイトを参
「最小のNode.jsのDockerイメージを目指すスレ」、「JavaでもDockerでマルチステージビルド」というエントリーでは、Node.jsとJavaを使ったアプリケーションのイメージをなるべく小さくするトライアルをしました。 今度はGoでやってみます。ただし、Pure Goで最小というのはすでに方法があって、scratchという何も含まれないイメージを元に、静的リンクしたバイナリを配置するという方法です。 Building Minimal Docker Containers for Go Applications Goを使う場合に、一部cgoで使われたパッケージを利用したいこともあるでしょうし、雑にコマンドラインを利用することもあるだろう、ということで、今回も、できることを減らさずに(やりたいことにしたがって細かく作戦を微調整する必要がない)、なるべく小さく、という方針でいきたいと
cri-oとは、kubernetes専用のコンテナランタイムとして主にRed Hatが開発を進めているツールです。 kubernetes(kubelet)がcri-oを操作し、cri-oがコンテナランタイムを操作するという、kubeletとコンテナランタイムの橋渡し的な位置付けになっています。 開発の背景 kubernetesは、コンテナを操作するインターフェースとしてCRIと呼ばれる仕様を策定しており、kubeletはこのインターフェースを使ってコンテナを操作することになっています。 CRIに準拠したツールであれば、どんなコンテナランタイムでもkubernetesと結合して使えるというわけです。 現在、kubernetesを使っている人は大抵コンテナランタイムとしてdockerを利用されているかと思いますが、これもkubelet組み込みのCRI-dockerアダプタで操作されています。
構成 今回は以下2つのコンテナを1Podとして配置します。 test-db 前回の記事で作成したサンプルを流用 DBサーバ(実際はjsonファイルを読みだすだけ) DockerHub上にmmitti/test-dbとしてイメージを公開しています 8000番ポートで稼働しています test-db-viewer 前回の記事で作成したtest-db-clientを変更したもの test-dbが読み込んでいるjsonファイルと同じものを読み込みHTMLを生成します データの追加は自ホスト8000番ポート(test-db)宛にデータをポストします 5000番ポートで稼働しています また、2つのコンテナはemptyDirをマウントしてjsonファイルを共有しています。 サンプルコード サンプルのyamlファイル及びtest-db-viewerコンテナのコードはGithub上で公開しています。必要であれ
Kubernetesのアドベントカレンダーです。 コンテナアプリケーションマネジメントエコシステム「Kubernetes」に関係する情報共有をしましょう。 お知らせ 満席になったため、Kubernetes その2ができました。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く