SlideShare a Scribd company logo
C#エンジニアのための
dockerコンテナ・
kubernetesハンズオン
2019/07/30 #csharptokyo
@tanaka_733
自己紹介
Senior Technical Support Engineer @ New Relic K.K.
◦ アプリケーションプラットフォーム監視(APM)のSaaSです
◦ Observability(可観測性)の獲得を助けます
◦ 日本語サポートなど日本市場に注力しています
Microsoft MVP for Azure
◦ .NET Core on Linux, Kubernetes, Azureなどのお仕事してました
◦ Visual StudioやQ#などにも興味があります
ソーシャル活動
◦ Twitter: @tanaka_733
◦ Blog: 銀の光と碧い空
【宣伝1】 n月刊ラムダノート
https://www.lambdanote.com/collections/n
今日のテーマ
C# (.NET Core)アプリをコンテナ・kubernetesで動かしてみよう
コンテナとは
コンテナハンズオン
kubernetesとは
kubernetesハンズオン
【宣伝2】New Relicでkubernetes上の.NET Coreアプリを監視
コンテナ
dockerとコンテナ
https://docs.microsoft.com/ja-jp/dotnet/standard/containerized-lifecycle-architecture/what-is-docker
docker engine
https://docs.docker.com/engine/docker-overview/
dockerのしくみ
https://docs.docker.com/engine/docker-overview/
コンテナイメージ
差分を積み重ねて構成
実体はバイナリファイル群
コンテナイメージ(例)
公式イメージ(aspnet)
設定、追加ソフトウェア
アプリケーション
実質同じコンテナイメージ
公式イメージ(aspnet)
設定、追加ソフトウェア
アプリケーション
レイヤー順が違っても、
実質同じ内容のコンテナイメージになりうる
イメージの更新を効率よくするには
頻繁に変更されるレイヤーが最後
アプリケーションがスタックの下だと
そこから上の差分を
すべて更新しないといけなくなる
アプリケーションが一番上だと
その層だけの更新でOK
コンテナイメージの作成
コンテナを実際に起動して、
手動で変更を加えて
docker saveコマンドで
新しいイメージを作成できる
FROM aspnet:2.2 AS
COPY --from=publish /app /app
ENTRYPOINT ["dotnet", "App.dll" ]
Dockerfileというファイルに
作成する手順を記入して
docker build する
.NET Coreでコンテナ
コンテナのメリットは「可搬性」  どこでも動く
.NET Core自体がクロスプラットフォーム前提
◦ 例えば開発マシン(Win or Mac)とコンテナ(Linuxコンテナ)で同じアプリを動かせる
ASP.NET CoreがKestrelなど軽量Webサーバーをサポートしているので、
IISなどの重いWebサーバーをコンテナに入れなくてすむ
コンテナという広く使われている技術の上で動かすアプリケーションの開発言語として
.NET Core (C#)を採用できる!
ハンズオンで利用する環境
Katacode
◦ ブラウザ上のターミナルからLinuxサーバーを操作できます
◦ ハンズオンの手順がWebページで表示されます
◦ Linuxサーバーがインターネットに公開できないので外部からの接続ができない
◦ HTTPはプロキシ経由で可能
Docker Desktop
◦ DockerのハンズオンはこれでもOK
minikube
◦ kubernetes環境をローカルマシン上で動かせる
AKS, EKSなど
◦ 運用にも使えるマネージドサービス
◦ ハンズオンだけのために使うには利用料が…
ハンズオン
https://www.katacoda.com/tanaka_733/scen
arios/csharp-kubernetes
【補足】 Dockerfile best practice
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#leverage-
build-cache
の中で今回説明したもの
Use multi-stage builds
◦ マルチステージビルドを使う
Leverage build cache
◦ 変更されやすいものほど最後に書いて、キャッシュが効くようにする
(書いていないが説明したもの)
アプリケーションのコンパイルもDockerコンテナ内で完結させる
◦ ホストでコンパイルすると、環境依存になる
◦ 特にDockerビルドを行うクラウドサービスを使うとき、SDKがない場合がある
【補足】マルチステージビルド
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS publish
WORKDIR /src
COPY . .
RUN dotnet publish MyWebApp.csproj -c Release -o /app
FROM base As final
WORKDIR /app
COPY --from=publish /app /app
ENTRYPOINT [ "dotnet", "MyWebApp.dll" ]
aspnet:2.2
base
sdk:2.2
publish
Runtimeのみ、軽量
SDK入り。重い。
ネットワーク設定等
dotnet publish
ENTRYPOINT
COPY ビルド成果物
こちらが最終的なdockerイメージ
こっちは使われない
csproj
など一式
final
コンテナを
動かそう
コンテナをどこで動かすか
Docker単体 or コンテナオーケストレーター上
AWSなら
◦ EKS, ECS
Azureなら
◦ ACI, AKS (コンテナでなければWebAppでも)
GCPなら
◦ GKE
コンテナ化することで、同じコンテナイメージをどこでも動かせる。
コンテナオーケストレーター
コンテナでアプリを動かすといろんな機能がほしくなる…
◦ コンテナをアプリケーションごとに指定した数だけ起動しておきたい
◦ ヘルスチェックしてエラーが出たら再起動したい
◦ コンテナイメージをバージョニングしてアプリをアップデートしたい
◦ ロードバランシングしたい
◦ 永続化データを保存するのでボリュームを管理したい
◦ etc…
オーケストレーターの実装はいろいろあるが、
現状kubernetesがデファクトとなっている。
Kubernetes?
https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/explore/explore-intro/
多くの場合、Node=仮想マシン
コンテナとvolumeをまとめた
もの。1つのアプリ。
今日作るPodはコンテナ1つだけ。
永続化ストレージ
コンテナ化したアプリ
=さっき作ったコンテナイメージ
kubernetesで動かすときに必要
Podの公開、ロードバランシング
Podのオートスケーリング
外部サービス?
Podのデプロイ
Podのヘルスチェック
Kubernetes
ハンズオン
New RelicでObservability
アプリケーションの監視
(SaaS ダッシュボード)
C#をはじめ複数言語
複数Framework
サポート
C#であれば
.NET Framework,
.NET Coreとも
サポート
クラウドネイティブ環境を「見る」
ブラウザ
アプリ
モバイル
アプリ API
ロジック
DB
サーバー
クラウド
コンテナ
Kubernetes Explorer
Kubernetes上のアプリを
New Relicで「見る」
New Relicにサインアップしてライセンスキーを取得する
◦ https://newrelic.co.jp/signup
Kubernetesクラスターの監視をセットアップする
◦ 数コマンド程度の手順
アプリのコンテナにNew Relicエージェントを仕込む
◦ アプリケーションコードの変更不要
◦ 同じコンテナ内にエージェントを追加して、
環境変数と起動オプション追加 (ASP.NET Coreの場合)
New Relicの.NET Coreコンテナ対応
基本的な流れはQiitaに書いてあります
◦ https://qiita.com/takayoshitanaka/items/6eef46d821704a7384dc
推奨手順はインストーラー実行なのでDockerfile内でインストール実行
◦ インストーラー実行せずともdllやconfigなどを一式コピーしても動作することは確認
.NET CoreではkestrelおよびIISのみデフォルトで監視
◦ コンテナ上のASP.NET Coreはデフォルトkestrelを利用
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
ENV CORECLR_ENABLE_PROFILING=1 
CORECLR_PROFILER={36032161-FFC0-4B61-B559-F6C5D41BAE5A} 
CORECLR_NEWRELIC_HOME=/usr/local/newrelic-netcore20-agent 
CORECLR_PROFILER_PATH=/usr/local/newrelic-netcore20-agent/libNewRelicProfiler.so
ARG agent_version="8.16.567.0"
RUN curl https://download.newrelic.com/dot_net_agent/previous_releases/${agent_version}/newrelic-netcore20-
agent_${agent_version}_amd64.deb -o newrelic-netcore20-agent_${agent_version}_amd64.deb 
&& dpkg -i newrelic-netcore20-agent_${agent_version}_amd64.deb 
&& rm newrelic-netcore20-agent_${agent_version}_amd64.deb
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS publish
WORKDIR /src
COPY . .
RUN dotnet publish <csprojファイルのパス> -c Release -o /app
FROM base As final
WORKDIR /app
COPY --from=publish /app /app
ENTRYPOINT [ "dotnet", "<publishしたdllのファイル名>" ]
New Relic用のDockerfile例
環境変数の設定
(ライセンスキーとアプリ名は
コンテナ起動時に指定するので
ここでは省略)
Agentのインストーラーを
インターネットから取得してインストール
kubernetesのdeploymentに
環境変数を追加
まとめ
Dockerコンテナ
◦ Dockerイメージを作ることでアプリケーションをOSまるごと可搬できる
◦ Dockerコマンドでdockerを操作
◦ Dockerfileでイメージを作成
Kubernetes
◦ kubectlコマンドで操作
◦ kubectlコマンドでdockerイメージを実行
◦ YAMLファイルで複数オブジェクトをまとめて定義したり、編集できる
New Relic
◦ C#の環境でもkubernetes環境でもObservabilityの獲得を助けます

More Related Content

What's hot

Knative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみたKnative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみた
Hideaki Aoyagi
 
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
Go Chiba
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Akihito Inoh
 
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JPDockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
Go Chiba
 
対話AI on Kubernetes
対話AI on Kubernetes対話AI on Kubernetes
対話AI on Kubernetes
Kazuki Morozumi
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
Takekazu Omi
 
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
Yuji Oshima
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
cyberblack28 Ichikawa
 
bicep 0.5 pre
bicep 0.5 prebicep 0.5 pre
bicep 0.5 pre
Takekazu Omi
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
Yuji Oshima
 
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
YASUKAZU NAGATOMI
 
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Masaya Aoyama
 
Gitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみようGitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみよう
Yoshiyuki Nakahara
 
普段の開発を少しだけ便利にする3つのレシピ
普段の開発を少しだけ便利にする3つのレシピ普段の開発を少しだけ便利にする3つのレシピ
普段の開発を少しだけ便利にする3つのレシピ
Takuma Maruyama
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
 
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
Hideaki Aoyagi
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
Yuji Oshima
 
RancherとGitOps的な話
RancherとGitOps的な話RancherとGitOps的な話
RancherとGitOps的な話
YASUKAZU NAGATOMI
 
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup TokyoDockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
Go Chiba
 

What's hot (19)

Knative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみたKnative Lambda Runtimeを試してみた
Knative Lambda Runtimeを試してみた
 
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
 
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JPDockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
 
対話AI on Kubernetes
対話AI on Kubernetes対話AI on Kubernetes
対話AI on Kubernetes
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
 
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
 
bicep 0.5 pre
bicep 0.5 prebicep 0.5 pre
bicep 0.5 pre
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
 
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
 
Gitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみようGitlab-CIを活かして自動化してみよう
Gitlab-CIを活かして自動化してみよう
 
普段の開発を少しだけ便利にする3つのレシピ
普段の開発を少しだけ便利にする3つのレシピ普段の開発を少しだけ便利にする3つのレシピ
普段の開発を少しだけ便利にする3つのレシピ
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
 
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
コンテナベースサーバーレスプラットフォーム「Knative」はServerlessなのか?
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
RancherとGitOps的な話
RancherとGitOps的な話RancherとGitOps的な話
RancherとGitOps的な話
 
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup TokyoDockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
 

Similar to C#エンジニアのためのdocker kubernetesハンズオン

20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
Takayoshi Tanaka
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
whywaita
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handson
Takayoshi Tanaka
 
kubernetes on Azure 最新情報
kubernetes on Azure 最新情報kubernetes on Azure 最新情報
kubernetes on Azure 最新情報
Takayoshi Tanaka
 
VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界
Yuichi Tamagawa
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
Saki Homma
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
Kuma Arakawa
 
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
IIJ
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)
Motohiro OTSUKA
 
Docker Meetup tpkyo #30 kubecon recap
Docker Meetup tpkyo #30 kubecon recapDocker Meetup tpkyo #30 kubecon recap
Docker Meetup tpkyo #30 kubecon recap
Yutaro Wada
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
 
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewKubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical preview
cyberblack28 Ichikawa
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
 
4-IBMの2年目とCKAを取得しよう!_1130
4-IBMの2年目とCKAを取得しよう!_11304-IBMの2年目とCKAを取得しよう!_1130
4-IBMの2年目とCKAを取得しよう!_1130
KotaSato3
 
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
Yuta Matsumura
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
 
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみるCloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
YASUKAZU NAGATOMI
 

Similar to C#エンジニアのためのdocker kubernetesハンズオン (20)

20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handson
 
kubernetes on Azure 最新情報
kubernetes on Azure 最新情報kubernetes on Azure 最新情報
kubernetes on Azure 最新情報
 
VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界VMware が考えるコンテナと Kubernetes の世界
VMware が考えるコンテナと Kubernetes の世界
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
 
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)
 
Docker Meetup tpkyo #30 kubecon recap
Docker Meetup tpkyo #30 kubecon recapDocker Meetup tpkyo #30 kubecon recap
Docker Meetup tpkyo #30 kubecon recap
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
 
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewKubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical preview
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
4-IBMの2年目とCKAを取得しよう!_1130
4-IBMの2年目とCKAを取得しよう!_11304-IBMの2年目とCKAを取得しよう!_1130
4-IBMの2年目とCKAを取得しよう!_1130
 
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみるCloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
 

More from Takayoshi Tanaka

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
Takayoshi Tanaka
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers
Takayoshi Tanaka
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
Takayoshi Tanaka
 
20201127 .NET 5
20201127 .NET 520201127 .NET 5
20201127 .NET 5
Takayoshi Tanaka
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
Takayoshi Tanaka
 
最近のQ#について
最近のQ#について最近のQ#について
最近のQ#について
Takayoshi Tanaka
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
Takayoshi Tanaka
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git feature
Takayoshi Tanaka
 
Q#基礎 ver1.1
Q#基礎 ver1.1Q#基礎 ver1.1
Q#基礎 ver1.1
Takayoshi Tanaka
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0
Takayoshi Tanaka
 
ゼロから始めるQ#
ゼロから始めるQ#ゼロから始めるQ#
ゼロから始めるQ#
Takayoshi Tanaka
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
Takayoshi Tanaka
 
New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10
Takayoshi Tanaka
 
Open shift on azure stack
Open shift on azure stackOpen shift on azure stack
Open shift on azure stack
Takayoshi Tanaka
 
Introduction to SQL Server on RHEL
Introduction to SQL Server on RHELIntroduction to SQL Server on RHEL
Introduction to SQL Server on RHEL
Takayoshi Tanaka
 
Log in to a Linux VM in Azure using AAD authentication
Log in to a Linux VM in Azure using AAD authenticationLog in to a Linux VM in Azure using AAD authentication
Log in to a Linux VM in Azure using AAD authentication
Takayoshi Tanaka
 
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
Takayoshi Tanaka
 

More from Takayoshi Tanaka (20)

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
20201127 .NET 5
20201127 .NET 520201127 .NET 5
20201127 .NET 5
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
 
最近のQ#について
最近のQ#について最近のQ#について
最近のQ#について
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git feature
 
Q#基礎 ver1.1
Q#基礎 ver1.1Q#基礎 ver1.1
Q#基礎 ver1.1
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0
 
ゼロから始めるQ#
ゼロから始めるQ#ゼロから始めるQ#
ゼロから始めるQ#
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
 
New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10New features of Azure Cloud Provider at OCP 3.10
New features of Azure Cloud Provider at OCP 3.10
 
Open shift on azure stack
Open shift on azure stackOpen shift on azure stack
Open shift on azure stack
 
Introduction to SQL Server on RHEL
Introduction to SQL Server on RHELIntroduction to SQL Server on RHEL
Introduction to SQL Server on RHEL
 
Log in to a Linux VM in Azure using AAD authentication
Log in to a Linux VM in Azure using AAD authenticationLog in to a Linux VM in Azure using AAD authentication
Log in to a Linux VM in Azure using AAD authentication
 
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
[量子コンピューター勉強会資料] マヨラナ粒子によるスケーラブルな量子コンピューターの設計
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 

Recently uploaded (8)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 

C#エンジニアのためのdocker kubernetesハンズオン

Editor's Notes

  1. OSとミドルウェア(.NET Core、JVM など)とアプリの組み合わせで簡単にイメージを作れる =>いつでも同じ環境を起動できる 可搬性がある =>開発用マシン、オンプレサーバーで動く。ACSやECSを使うとコンテナイメージ1つを手軽にクラウド上で動かせる
  2. OSの技術を使いこのようなコンテナを移動、実行するための実装技術の一つがdocker。 そのコアとなるものがdocker daemon。 デーモンを操作するためにREST APIやdocker CLIが提供されている。今日はCLIを使う。
  3. LinuxではLinux、WInではWinのコンテナイメージのみ(現状) Docker CLIからの指示を受けてdocker daemonがうごく。 DockerのイメージはRegistryに保管される。Docker HubをはじめとするpublicなRegistryやprivateなRegistryを作れる。 docker daemonは必要になったイメージをまずローカルで探し、なければRegistryからもってくる。これをpullとよぶ。 コンテナからホスト、コンテナから別コンテナは原則アクセスできない (明示的な指定でネットワークアクセスを許可したり、ボリュームマウントできる)