Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kubernetes入門
Search
Kyohei Mizumoto
January 24, 2019
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetes入門
社内勉強会での発表資料です。
2019/04/19 内容を更新
Kyohei Mizumoto
January 24, 2019
More Decks by Kyohei Mizumoto
See All by Kyohei Mizumoto
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
5
1.4k
最新の脅威動向から考える、コンテナサプライチェーンのリスクと対策
kyohmizu
1
1.1k
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
9
4.4k
Black Hat USA 2025 Recap ~ クラウドセキュリティ編 ~
kyohmizu
0
1k
CTFのためのKubernetes入門
kyohmizu
3
1.3k
クラウドネイティブ環境の脅威モデリング
kyohmizu
3
870
コンテナサプライチェーンセキュリティ
kyohmizu
2
570
サイバーセキュリティの最新動向:脅威と対策
kyohmizu
1
480
コンテナセキュリティの基本と脅威への対策
kyohmizu
4
2.4k
Other Decks in Technology
See All in Technology
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
690
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
700
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
140
SDDの運用にめげずに向き合った話
sansantech
PRO
1
140
12 個 Tool と、 4,096 Token
hlum
0
130
DGX Spark でどこまでハッキングができるのか?
kash1064
0
620
今さら理解するウェブフォントver.2026
takanorip
3
680
AI時代のPRレビューにどう向き合うか?
kairim0
1
170
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
610
予測不能な実行エージェントを安全にサクッと試せるサンドボックス環境の話
sansantech
PRO
1
150
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
310
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
150
Featured
See All Featured
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
720
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Crafting Experiences
bethany
1
380
For a Future-Friendly Web
brad_frost
184
10k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Paper Plane
katiecoart
PRO
4
54k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
We Are The Robots
honzajavorek
0
390
A better future with KSS
kneath
240
18k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
Transcript
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 1/66 Kubernetes⼊⾨
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 2/66 Kyohei Mizumoto(@kyohmizu) C# Software Engineer Interests
Docker/Kubernetes Go Security whoami
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 3/66 対象者 Kubernetesやったことない、知らない Kubernetesに興味がある Kubernetesの概要を知りたい
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 4/66 ⽬次 Kubernetesとは Kubernetesの機能 アーキテクチャ Kubernetesリソース マニフェスト例
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 5/66 Kubernetesとは
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 6/66 コンテナオーケストレーションツール オープンソース Cloud Native Computing Foundation
(CNCF)がホスト Kubernetes︖
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 7/66 コンテナ︖ 仮想化技術の⼀種 プロセスを1つの環境として切り分けたもの 軽量かつ移植、複製が容易 Dockerがデファクトスタンダード
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 8/66 オーケストレーション︖ 配置、設定、管理の⾃動化 Webアプリ 内部プログラム データベース ネットワーク
Kubernetesは全てをリソースとして管理
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 9/66 Kubernetesの利⽤ ローカル Minikube Docker for Mac
Kubernetes構築ツール kubeadm Rancher
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 10/66 Kubernetesの利⽤ マネージドサービス Google Kubernetes Engine(GKE) Azure
Container Service(AKS) Elastic Container Service for Kubernetes(EKS)
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 11/66 Kubernetesの機能
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 12/66 Kubernetesの機能 仕様、設定管理 リソース作成、配置 リソース拡張 通信 ジョブ管理
ログ管理 冗⻑性 認証・認可
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 13/66 仕様・設定管理 コードベースの仕様 yaml形式のマニフェストファイル Infrastructure as Code
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 14/66 リソース作成・配置 設定に従って必要なリソースを作成、配置 バージョン管理 ローリングアップデート ロールバック
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 15/66 リソース拡張 リソースの不⾜時に⾃動拡張 オートスケーリング
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 16/66 通信 外部との通信 プロキシ 内部の通信 オーバーレイネットワーク 内部DNS
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 17/66 ジョブ管理 スケジューリング 1回のみ 繰り返し
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 18/66 ログ管理 各リソースのログを集約 外部ツールと連携 監視 アラート
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 19/66 冗⻑性 死活監視 セルフヒーリング ロードバランシング
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 20/66 認証・認可 アカウント管理 権限の分離 RBAC
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 21/66 アーキテクチャ
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 22/66
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 23/66 Cluster(クラスタ) Kubernetes実⾏環境の基盤 1つ(以上)のmaster 複数のnode
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 24/66 Master(マスター) クラスタ全体の管理ユニット etcd API Server Scheduler
Controller Manager
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 25/66 Node(ノード) コンテナが動作する環境、マシンリソース Pod Kubelet Kube-proxy cAdvisor
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 26/66 etcd 永続的で軽量な分散Key-Valueストア クラスタの設定や状態を保存
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 27/66 API Server Kubernetes APIのサーバー Kubernetesに対する内外のインターフェースを提供す る
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 28/66 Scheduler 新規Podを最適なノードに配置 リソースの供給を需要に合わせる
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 29/66 Controller Manager クラスタの状態を維持 レプリカ数 ジョブ管理
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 30/66 Pod 1つ以上のコンテナを内包する単位 Pod内はlocalhostでアクセス可能
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 31/66 Kubelet ノード内の管理 Podの状態を監視、異常があれば再デプロイ ノード状態をマスターに送信
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 32/66 Kube-proxy プロキシ、ロードバランサーの役割 cAdvisor リソースの使⽤量を監視、収集
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 33/66 Kubernetesリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 34/66 リソースの分類 Workloadsリソース Discovery&LBリソース Config&Storageリソース Clusterリソース Metadataリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 35/66 Workloadsリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 36/66 Workloadsリソース Pod ReplicaSet Deployment DaemonSet StatefulSet
Job CronJob
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 37/66 ReplicaSet Podの管理、複製 Pod数を設定どおりに維持 セルフヒーリング
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 38/66 Deployment ReplicaSetの履歴、バージョン管理 アップデート ロールバック 削除
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 39/66 DaemonSet 各ノードに1つずつPodを配置 e.g. ノードの管理、情報収集
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 40/66 Job 1度のみ実⾏ CronJob Jobのスケジューリング
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 41/66 Discovery&LBリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 42/66 Discovery&LBリソース Service ClusterIP NodePort LoadBalancer ExternalIP
ExternalName Headless Ingress
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 43/66 Service コンテナと外部の通信 クラスタ内 クラスタと外部 IPアドレス、ポートによるアクセス
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 44/66 Ingress クラスタと外部の通信 URLによるアクセス L7ロードバランシング
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 45/66 Config&Storageリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 46/66 Config&Storageリソース Secret ConfigMap PersistentVolumeClaim
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 47/66 Secret 機密情報を定義 パスワード、トークン、Keyなど kubesec で暗号化
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 48/66 ConfigMap Key-Valueでデータを保持 設定情報とコンテナを分離
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 49/66 Clusterリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 50/66 Clusterリソース Namespace ServiceAccount Role/ClusterRole RoleBinding/ClusterRoleBinding Volume
PersistentVolume Node
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 51/66 Namespace リソースの分割 e.g. 開発者⽤、管理者⽤ アクセス制御 仮想クラスタ
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 52/66 StatefulSet データの永続化 Podの管理 それぞれのPodに個別ID 置き換え不可
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 53/66 Volume ホスト上の領域をマッピング ファイルの保存 コンテナ間のデータ共有
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 54/66 PersistentVolume 永続化領域 利⽤には PersistentVolumeClaim(PVC) が必要
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 55/66 Metadataリソース
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 56/66 Metadataリソース CustomResourceDefinition LimitRange HorizontalPodAutoscaler
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 57/66 マニフェスト例
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 58/66 Pod apiVersion: v1 kind: Pod metadata:
name: sample-pod spec: containers: - name: nginx-container image: nginx:1.12
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 59/66 ReplicaSet apiVersion: apps/v1 kind: ReplicaSet metadata:
name: sample-rs spec: replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: nginx-container image: nginx:1.12 ports: - containerPort: 80
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 60/66 Deployment apiVersion: apps/v1 kind: Deployment metadata:
name: sample-deployment spec: replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: nginx-container image: nginx:1.12 ports: - containerPort: 80
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 61/66 Job apiVersion: batch/v1 kind: Job metadata:
name: sample-job spec: completions: 1 parallelism: 1 backoffLimit: 10 template: spec: containers: - name: sleep-container image: centos:6 command: ["sleep"] args: ["60"] restartPolicy: Never
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 62/66 Secret apiVersion: v1 kind: Pod metadata:
name: sample-secret-single-env spec: containers: - name: secret-container image: nginx:1.12 env: - name: DB_USERNAME valueFrom: secretKeyRef: name: sample-db-auth key: username
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 63/66 書籍紹介
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 64/66 書籍紹介
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 65/66 参考サイト 公式サイト https://kubernetes.io 『Kubernetes完全ガイド』の付録マニフェスト https://github.com/MasayaAoyama/kubernetes-perfect-guide 今こそ始めよう︕
Kubernetes⼊⾨ https://thinkit.co.jp/series/7342
2019/4/19 Kubernetes⼊⾨ 127.0.0.1:5500/#65 66/66 Thank you!