SlideShare a Scribd company logo
1 of 34
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 JPGo Chiba
 
GitHub Actions + Cloudflare API
GitHub Actions + Cloudflare APIGitHub Actions + Cloudflare API
GitHub Actions + Cloudflare APITakahiro Kudo
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key VaultTakekazu 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 previewcyberblack28 Ichikawa
 
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
 
受託開発の現場におけるdocker利用事例
受託開発の現場におけるdocker利用事例受託開発の現場におけるdocker利用事例
受託開発の現場におけるdocker利用事例Takahiro Kudo
 
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
 

What's hot (20)

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
 
GitHub Actions + Cloudflare API
GitHub Actions + Cloudflare APIGitHub Actions + Cloudflare API
GitHub Actions + Cloudflare API
 
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.
 
受託開発の現場におけるdocker利用事例
受託開発の現場におけるdocker利用事例受託開発の現場におけるdocker利用事例
受託開発の現場におけるdocker利用事例
 
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的な話
 

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 #osc19tkwhywaita
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handsonTakayoshi 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, NetworkKuma 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 recapYutaro Wada
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on AzureMasaki Yamamoto
 
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewKubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical previewcyberblack28 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を取得しよう!_1130KotaSato3
 
5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon Recap5分でわかる Capabilities と Privilege + KubeCon Recap
5分でわかる Capabilities と Privilege + KubeCon RecapMasaya Aoyama
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project TyeYuta 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 tracingTakayoshi Tanaka
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineersTakayoshi Tanaka
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapploggingTakayoshi 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のObservabilityTakayoshi 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 featureTakayoshi Tanaka
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0Takayoshi 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.10Takayoshi 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.10Takayoshi Tanaka
 
Introduction to SQL Server on RHEL
Introduction to SQL Server on RHELIntroduction to SQL Server on RHEL
Introduction to SQL Server on RHELTakayoshi 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 authenticationTakayoshi 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

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (8)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

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とよぶ。 コンテナからホスト、コンテナから別コンテナは原則アクセスできない (明示的な指定でネットワークアクセスを許可したり、ボリュームマウントできる)