Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
概要 GitLab Runner 1.1 with Autoscalingによると、gitlab-runner自身もスケールできるよ、と。 runnerの環境にいろいろ入れるのは嫌だし、runnnerの環境にDockerを入れてそこで動かすにしても、 メモリやCPUも常時そんなに必要なわけじゃないから、runnner自体は安いインスタンスにしたい。 そう思うのは人情です。 そこで、今回はgitlab-runnerはt2.microの小さいインスタンスで動かし、 実際のビルドは、そこからdocker-machineで作成された先のインスタンス内でやろうと考えたのです。 AmazonLinuxで1からgitlab-runnerを入れ、ビルドできるところまでをステップごとに紹介します。 公式ドキュメントをコピペしていると気づかないつまづきポイントつき! やってみた結果、思ったこと メリット gi
この記事は、Kong - API Gateway Pattern速習会@Wantedlyの資料として作られたものです。 サービスが大きくなるとやりたくなってくること より高速な実装に置き換えたい APIを複数のサービスに分けて開発したい マイクロサービス化 何故マイクロサービスか James Lewis/Martin Fowlerの"Microservices"日本語訳 State of the Art in Microservices by Adrian Cockcroft - Qiita いろいろ理由は言われてるけど... 人が扱える大きさの限界 「明確な」境界が必要 名前空間やスコープなど、プログラミング言語でも使用している 一段上の概念だと思うと良い 大きいメソッドが管理できないのと同様に、大きいサービスも管理できない 組織体系に影響を与える 100人のチームで開発するのが嫌ならや
このコマンドはコンテナ内の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 の1日目の記事です。 こんにちは。Emotion Techの子安です。すっかり冬ですね。今日は夜の銀座からお送りします。 なんでもDockerで Dockerに触れるようになって約2年ほど経ちました。最近は技術検証はもちろん、何かをちょっと試したいときなども、新しい環境が必要になるとまずはDockerで構築してみることが当たり前に(自分的には)なってきています。 で、今回はWebからちょこっと何か取ってきたいとき、いわゆるスクレイピングをしたいとき、Dockerがあれば簡単に環境が作れるぞという話をします。 ※なお、スクレイピングは用法・用量を守って正しく行いましょう。あくまで自己責任でお願いしますね。 要件 とあるサイトから情報を抜き出したい ブラウザを操作してサイトを巡回する Docker上に構築する プログラミング言
はじめに この記事は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ができました。
はじめに Kubernetesがコンテナオーケストレーションツールのデファクトになったといわれて久しい1ですが、今年のAWS re:InventではAmazon EKS2の発表もあり、これからKubernetesに取り組もうという人もいるのではないかと思います。 かくいう私もその一人で、最近この辺りの技術に入門して色々と試していたので、今日はそのまとめを記します。 更新履歴 2020-05-09 Compose on Kubernetesについて追記 2017-12-12 初稿投稿 用語解説 Minikube Kubernetesクラスタをローカルマシン上で構築できるようにしてくれるものです。 Kubernetesクラスタを自前で一から構築するのは非常に大変そう(やったことはありません)なのですが、これを使うと簡単に試すことができます。 CIなどでも活用できそうです。 Kompose Do
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く