狠狠撸

狠狠撸Share a Scribd company logo
イ ン フ ラ エ ン ジ ニ ア が
k 8 s で ア プ リ を 作 っ て 見 え た
今後のインフラ
は じ め に
Kubernetes? (k8s)で動くアプリを作っていく中
で見えてきた今後のインフラの姿を
VMからコンテナにした時の苦労を交えてお伝え
したいと思います
自 己 紹 介
名 前:田中 進
会 社:株式会社エーピーコミュニケーションズ
職 種:インフラエンジニア
その他:最近構築したシステムは仮想化基盤
うっかりプログラマにクラスチェンジ中
目 次
1. k8sを触って見えた今後のインフラ
2. k8s、dockerへの不安
3. 調べて対応
4. まとめ
k 8 s を 触 っ て 見 え た
今 後 の イ ン フ ラ
今 ま で の V M っ て ?
? ハードウェアを仮想化
? ソフトウェアの
実行方法は変わらない
D o c k e r コ ン テ ナ っ て ?
? 依存関係含め
まるごとパッケージ化
? 同じじゃないけど似ている
? Goで作ったコードが
バイナリひとつ動く
? ダイナミックリンクに対する
スタティックリンク
? Dockerコンテナは“仮想マ
シン”ではなく“アプリ”
シ ス テ ム 毎 に 作 る 範 囲 が 変 わ っ た
コンテナを管理するオーケストレーションツール
wikipediaより
オーケストレーション(英: Orchestration)は、複雑なコンピュータシステム/ミドルウ
ェア/サービスの配備/設定/管理の自動化を指す用語
k u b e r n e t e s と は
具体的には
● コンテナの自動復旧
● ノード間のネットワークをつなぐ とか…
k u b e r n e t e s と は
B e f o r e : シ ス テ ム 毎 に イ ン フ ラ 構 築
A f t e r : シ ス テ ム 毎 に コ ン テ ナ 構 築
コ ー ド 化 に よ る メ リ ッ ト
今 後 の イ ン フ ラ
インフラとアプリの境界が変わり
システム毎にコンテナを作るようになる
コード化によるメリットが生まれる
k 8 s 、 d o c k e r へ の 不 安
漠 然 と し た 不 安
コンテナって
きちんと動くの?
実 績 あ り ま す
実績
IIJ様、メルカリ様、Yahoo様、Mirantis様… など
製品
Openstack(Kolla)
CIツールのDrone とか…
使 っ て み た 時 の 不 安 ( な ん か 動 い て る ぽ い け ど )
①ログってどうなる? ②今までのアプリどう移植する?
? 1コンテナ、1プロセス?
? syslogあげれない?
? どうやってログ送る?
? 全部、書き換えないとダメ?
? 何を変えればいいの?
調 べ て 対 応
壁を突破するのも
僕たちの仕事です!
① ロ グ っ て ど う な る ? ( 検 討 )
? ノードとコンテナのログ まとめて取りたい
? flunetd公式にあるdaemonsetサンプルを使ってElasticsearchに食わせればい
いんでしょ?
① ロ グ っ て ど う な る ? ( 検 証 )
敗因:AtomicHostはログが全部Journaldに吐かれていた
生ログは吐かれておらず収集不可
① ロ グ っ て ど う な る ? ( 調 査 )
? マニュアルと格闘
?k8sはjournaldがある場合、journaldに統合している
? Dockerは?
?設定みたら、デフォルトでjournaldに吐いてた
最初は生ログを吐かそうと思ったが、もうjournaldから収集した方がよさそう
① ロ グ っ て ど う な る ? ( 再 挑 戦 )
? fluent-plugin-systemdを追加
? 合わせてfluentdのコンフィグを書き換え
① ロ グ っ て ど う な る ? ( 結 果 )
1. なんかログは取れる kibanaがカッコいい
2. k8s特有の情報もフィールドとして判断できた
ログ収集は調べながら
なんだかんだで出来た
アプリケーション側は…?
② 今 ま で の ア プ リ ど う 移 植 す る ?
( 経 緯 )
引き継いだアプリはVMで動いていた
※補足:システム要件でRedmineをデータ格納先として利用しています
② 今 ま で の ア プ リ ど う 移 植 す る ?
( と り あ え ず や っ て み る )
仮想マシンからファイルを取り出してコンテナ化
② 今 ま で の ア プ リ ど う 移 植 す る ?
( 結 果 )
IP自動割り当てに対応しておらず動かなかった
(設定にIPベタ書き。当然と言えば、当然???)
Appコンテナ Redmineコンテナ
Apache
コンテナ
IPアド レス
自動割り当て
接続先わからず 接続先わからず
② 今 ま で の ア プ リ ど う 移 植 す る ?
( ア プ リ の 修 正 : 方 針 )
では、どうしたか?
K8sは環境変数に他コンテナの情報を持たせてくれる
設定を環境変数から取得に変更
② 今 ま で の ア プ リ ど う 移 植 す る ?
( ア プ リ の 修 正 : 修 正 内 容 )
#!/usr/bin/env python
import os
REDMINE_IP = os.environ.get(‘REDMINE_SERVICE_HOST’,’’)
こんな感じで、言語の標準モジュールを使い
簡単に環境変数の値がとれる
アプリのコンフィグ修正版
② 今 ま で の ア プ リ ど う 移 植 す る ?
( ア プ リ の 修 正 : 結 果 )
こんな感じでIPを取得しながら動かすことが出来た
② 今 ま で の ア プ リ ど う 移 植 す る ?
( A p a c h e の 設 定 : 検 討 )
一方、環境変数に対応してないソフトウェアがあると思います
これ、どうするんだ?とか思いました
公式のコンテナイメージ等を参照していると
コンテナ起動時、設定を書き換えるスクリプトが流れていた。
② 今 ま で の ア プ リ ど う 移 植 す る ?
( A p a c h e の 設 定 : 修 正 内 容 )
#!/bin/bash
# 変数定義
CONFIGFILE=/usr/local/apache2/conf/httpd.conf
# 環境変数を使って、コンフィグファイルを置換
sed -i s/’{{HOGE_SERVER}}'/${APP_SERVICE_HOST}/g $CONFIGFILE
# HTTPD実行
httpd-foreground
コンフィグにはあらかじめ、
置換用文字投入済み。
---抜粋--
ProxyPass /hoge-api http://{{HOGE_SERVER}}/hoge-api
ProxyPassReverse /hoge-api http://{{HOGE_SERVER}}/hoge-api
------
② 今 ま で の ア プ リ ど う 移 植 す る ?
( A p a c h e の 修 正 : 結 果 )
意図した通り環境変数が効いた設定がApacheで起動
アプリケーションの対応も
環境変数から値を取る
くらいで出来た
対 応 ま と め
? IP動的割り当てに対応
?標準モジュールつかって環境変数から値をとるようにしただけ
? ログ収集
?各公式ドキュメントを読んでログ収集コンテナを作っただけ
最初は学ぶオーバーヘッドもあったが… つかえる 実は簡単?
ま と め
再 掲 P a a S に よ る 効 率 化
再 掲 コ ー ド 化 に よ る 管 理 性 の 向 上
コンテナはよいもの
インフラとアプリの境界が変わる
効率化された世界が待っている
再 掲 意 外 と や れ ば で き る
? IP動的割り当てに対応
?標準モジュールつかって環境変数から値をとるようにしただけ
? ログ収集
?各公式ドキュメントを読んでログ収集コンテナを作っただけ
最初は学ぶオーバーヘッドもあったが… つかえる 実は簡単?
全然使える
壁があっても乗り越えられる
ま と め
私なりに今後のインフラについて語ってみましたが、いかがでしたでしょうか?
今までの仮想化とは、また違った世界をお伝えできたのではないかと思います。
本日の発表を通じ、コンテナやオーケストレーションについて
少しでも身近に感じてもらえればと思っております。
ご清聴、ありがとうございました。
Ad

Recommended

ネットワークへの颁滨的アプローチ
ネットワークへの颁滨的アプローチ
susumu tanaka
?
NDS36 Java7&Java8
NDS36 Java7&Java8
Yukiya Nakagawa
?
Pex を試してみよう!
Pex を試してみよう!
Oda Shinsuke
?
テスト駆动开発へようこそ
テスト駆动开発へようこそ
Shuji Watanabe
?
テスト駆动开発の导入ーペアプログラミングの学习効果ー
テスト駆动开発の导入ーペアプログラミングの学习効果ー
Shuji Watanabe
?
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
?
XP lives, XP dies, XP lives again !!
XP lives, XP dies, XP lives again !!
Masanori Kado
?
闯别苍办颈苍蝉を利用した颁滨、弊社导入事例
闯别苍办颈苍蝉を利用した颁滨、弊社导入事例
Ryoichi Obara
?
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
Junya Suzuki
?
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
?
世界をすこしだけ前に进めるということ
世界をすこしだけ前に进めるということ
Yukei Wachi
?
闯别苍办颈苍蝉ではじめる継続的インテグレーション
闯别苍办颈苍蝉ではじめる継続的インテグレーション
Masanori Satoh
?
狈辞诲别.箩蝉て?対戦ケ?ーム作ったよ
狈辞诲别.箩蝉て?対戦ケ?ーム作ったよ
Yuusuke Takeuchi
?
Hello! intermediate language
Hello! intermediate language
Kouji Matsui
?
叠濒耻别迟辞辞迟丑で驳辞!
叠濒耻别迟辞辞迟丑で驳辞!
Kouji Matsui
?
コンテナ时代にインフラエンジニアは何をするのか
コンテナ时代にインフラエンジニアは何をするのか
gree_tech
?
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
beyond Co., Ltd.
?
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
?
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
?
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Michitaka Terada
?
Getting Started With AKS
Getting Started With AKS
Balaji728392
?
捕鲸!详解诲辞肠办别谤
捕鲸!详解诲辞肠办别谤
雄哉 吉田
?
コンテナ情报交换会2
コンテナ情报交换会2
Masahide Yamamoto
?
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
Kazuhide Okamura
?
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
?
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Daein Park
?
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
?
ハ?ーシ?ョンアッフ?に负けないためのフ?ラクティス
ハ?ーシ?ョンアッフ?に负けないためのフ?ラクティス
Yuji Tokuda
?

More Related Content

What's hot (8)

闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
Junya Suzuki
?
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
?
世界をすこしだけ前に进めるということ
世界をすこしだけ前に进めるということ
Yukei Wachi
?
闯别苍办颈苍蝉ではじめる継続的インテグレーション
闯别苍办颈苍蝉ではじめる継続的インテグレーション
Masanori Satoh
?
狈辞诲别.箩蝉て?対戦ケ?ーム作ったよ
狈辞诲别.箩蝉て?対戦ケ?ーム作ったよ
Yuusuke Takeuchi
?
Hello! intermediate language
Hello! intermediate language
Kouji Matsui
?
叠濒耻别迟辞辞迟丑で驳辞!
叠濒耻别迟辞辞迟丑で驳辞!
Kouji Matsui
?
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
Junya Suzuki
?
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
?
世界をすこしだけ前に进めるということ
世界をすこしだけ前に进めるということ
Yukei Wachi
?
闯别苍办颈苍蝉ではじめる継続的インテグレーション
闯别苍办颈苍蝉ではじめる継続的インテグレーション
Masanori Satoh
?
狈辞诲别.箩蝉て?対戦ケ?ーム作ったよ
狈辞诲别.箩蝉て?対戦ケ?ーム作ったよ
Yuusuke Takeuchi
?
Hello! intermediate language
Hello! intermediate language
Kouji Matsui
?
叠濒耻别迟辞辞迟丑で驳辞!
叠濒耻别迟辞辞迟丑で驳辞!
Kouji Matsui
?

Similar to インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ (20)

コンテナ时代にインフラエンジニアは何をするのか
コンテナ时代にインフラエンジニアは何をするのか
gree_tech
?
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
beyond Co., Ltd.
?
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
?
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
?
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Michitaka Terada
?
Getting Started With AKS
Getting Started With AKS
Balaji728392
?
捕鲸!详解诲辞肠办别谤
捕鲸!详解诲辞肠办别谤
雄哉 吉田
?
コンテナ情报交换会2
コンテナ情报交换会2
Masahide Yamamoto
?
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
Kazuhide Okamura
?
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
?
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Daein Park
?
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
?
ハ?ーシ?ョンアッフ?に负けないためのフ?ラクティス
ハ?ーシ?ョンアッフ?に负けないためのフ?ラクティス
Yuji Tokuda
?
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Daiki Kawanuma
?
Acm2.1 short public
Acm2.1 short public
Yuhki Hanada
?
Dockerイメーシ?構築 実践テクニック
Dockerイメーシ?構築 実践テクニック
Emma Haruka Iwao
?
ソフトウェア工学2023 06 コンテナ仮想化
ソフトウェア工学2023 06 コンテナ仮想化
Toru Tamaki
?
Personal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
?
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud
真吾 吉田
?
コンテナ时代にインフラエンジニアは何をするのか
コンテナ时代にインフラエンジニアは何をするのか
gree_tech
?
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
beyond Co., Ltd.
?
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
?
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Michitaka Terada
?
Getting Started With AKS
Getting Started With AKS
Balaji728392
?
捕鲸!详解诲辞肠办别谤
捕鲸!详解诲辞肠办别谤
雄哉 吉田
?
使ってわかる 今どきのdocker超入門
使ってわかる 今どきのdocker超入門
Kazuhide Okamura
?
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
?
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Daein Park
?
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
?
ハ?ーシ?ョンアッフ?に负けないためのフ?ラクティス
ハ?ーシ?ョンアッフ?に负けないためのフ?ラクティス
Yuji Tokuda
?
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned
Daiki Kawanuma
?
Dockerイメーシ?構築 実践テクニック
Dockerイメーシ?構築 実践テクニック
Emma Haruka Iwao
?
ソフトウェア工学2023 06 コンテナ仮想化
ソフトウェア工学2023 06 コンテナ仮想化
Toru Tamaki
?
Personal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
?
Kubernetes on Alibaba Cloud
Kubernetes on Alibaba Cloud
真吾 吉田
?
Ad

Recently uploaded (7)

Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
色について.pptx .
色について.pptx .
iPride Co., Ltd.
?
础滨技术共有会2025-06-05冲顿别别辫搁别蝉别补谤肠丑の理解と実践.辫诲蹿
础滨技术共有会2025-06-05冲顿别别辫搁别蝉别补谤肠丑の理解と実践.辫诲蹿
Takuma Oda
?
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
础滨技术共有会2025-06-05冲顿别别辫搁别蝉别补谤肠丑の理解と実践.辫诲蹿
础滨技术共有会2025-06-05冲顿别别辫搁别蝉别补谤肠丑の理解と実践.辫诲蹿
Takuma Oda
?
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
?
Ad

インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ