Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@taxin_tt ϩʔΧϧK8Sڥͷεεϝ
Slide 2
Slide 2 text
WHO AM I? • @taxin_tt • Kubernetes Novice Tokyoͷதͷਓ • ࠷ۙTerraformͱDatadogΛ͍ͬͯΔ
Slide 3
Slide 3 text
• Kubernetes Novice Tokyo #1 • ʮKubernetesΛԿΛͬͯ৮Γ࢝ΊͨΒ͍͍͔ʯͱ͍͏ٙ -> AWS, Azure, GCPͷϚωʔδυk8sαʔϏεͷհΛߦ͏LTΛ࣮ࢪ ԿΛͬͯK8SΛಈ͔͔͢
Slide 4
Slide 4 text
ԿΛͬͯK8SΛಈ͔͔͢
Slide 5
Slide 5 text
ԿΛͬͯK8SΛಈ͔͔͢
Slide 6
Slide 6 text
• ্ͷ2ͭԿ? • ϩʔΧϧڥͰk8sΫϥελΛߏங͢Δࡍʹར༻͢Δπʔϧ • ࠓճ্هͷతͰར༻͢Δ3छྨͷπʔϧ (kubeadm, kind, minikube) Λհ͠·͢ • ͜Μͳπʔϧ͋ΔΑʂ ͜ΜͳࣄͰ͖ΔΑʂ͕͋Ε #k8snovice Ͱڞ༗ͯ͠Լ͍͞ ԿΛͬͯK8SΛಈ͔͔͢
Slide 7
Slide 7 text
• Ϋϥελͷཁ݅ (Requirements) • 1) OS: Ubuntu 16.04+ / Debian 9+ / CentOS 7 / Red Hat Enterprise Linux (RHEL) 7 etc. (※ OS X or Windows্Ͱಈ͔͢ࡍʹVMΛཱͯͯɺͦ͜ʹಋೖ͢Δ) • 2) Memory: 2 GB (or more) / Node • 3) CPU: 2 Cores (or more) (1) KUBEADM
Slide 8
Slide 8 text
• ߏஙखॱ • NodeͷVMΛ༻ҙ͠ɺඞཁͳίϯϙʔωϯτͷinstall + ઃఆΛߦ͍ΫϥελΛߏங - Master Node: ΫϥελͷཧΛߦ͏ - Worker Node: ࣗୡ͕ಈ͔͍ͨ͠ίϯςφ(ϫʔΫϩʔυ)Λ࣮ߦ͢Δ Kubernetes (1) KUBEADM VM Master Worker Worker VM VM
Slide 9
Slide 9 text
• ߏஙखॱ • େ·͔ͳྲྀΕΛݴ͏ͱԼهͷ௨Γ • Ϋϥελߏஙલͷڥઃఆ (VMͷkubeadmɾkubeletɾkubectlͷinstall, Nodeؒ௨৴ͷڐՄઃఆ etc.) • ԼهͷίϚϯυΛ༻͍֤ͯNodeͷηοτΞοϓΛߦ͏ - kubeadm init : Master NodeͷॳظԽ - kubeadm join : Worker NodeΛΫϥελʹࢀՃͤ͞Δ Kubernetes (1) KUBEADM VM Master Worker VM 1. init 2. join
Slide 10
Slide 10 text
• Ͱ͖Δ͜ͱ • Master / Worker NodeͷίϯϙʔωϯτͷઃఆΛ্ॻ͖ͯ͠ΧελϚΠζՄೳ - yamlϑΝΠϧʹઃఆΛఆٛ͢Δ - kubeadm init --config config.yaml Λ࣮ߦ͢Δ (1) KUBEADM # cluster config # change IP address of APIServer apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration kubernetesVersion: v1.16.0 apiServer: extraArgs: advertise-address: 192.168.0.103
Slide 11
Slide 11 text
• Ͱ͖Δ͜ͱ • Master / Worker NodeͷίϯϙʔωϯτͷઃఆΛ্ॻ͖ͯ͠ΧελϚΠζՄೳ - ݸผʹ࣮ߦ࣌Ҿͱͯ͠ઃఆΛ͢͜ͱՄೳ (--apiserver-advertise-address=) https://kubernetes.io/ja/docs/setup/production-environment/tools/kubeadm/control-plane-flags/ (1) KUBEADM
Slide 12
Slide 12 text
• ߏஙखॱ • Node༻ͷImageΛpullͯ͠ɺdocker containerΛNodeͱͯ͠ΫϥελΛߏங (Kind = Kubernetes in Docker) • OS X/Windows্ͰɺVMͷsetupແ͠ͰΫϥελߏங͕Մೳ (2) KIND OS X / Windows / Linux DockerHub Kubernetes Master (docker container) Worker (docker container) Worker (docker container)
Slide 13
Slide 13 text
• ߏஙखॱ • goͷinstall + kindͷinstall • kind create cluster • cluster໊ͷࢦఆ (--name ) • Cluster configϑΝΠϧͷࢦఆ (--config ) (2) KIND
Slide 14
Slide 14 text
• Ͱ͖Δ͜ͱ • 1. Ϋϥελͷߏ ΛYAMLϑΝΠϧͰදݱͰ͖Δ (Cluster configϑΝΠϧͷࢦఆ) • ԼهͷΑ͏ͳ߲ΛΫϥελͷઃఆͱͯ͠ఆٛ - Nodeͷߏ - Kubernetesͷversion (Node imageͷversion → k8sͷversion) (2) KIND # cluster config # three node (master:1 / worker:2) kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane image: kindest/node:v1.16.4 - role: worker image: kindest/node:v1.16.4 - role: worker image: kindest/node:v1.16.4
Slide 15
Slide 15 text
• Ͱ͖Δ͜ͱ • 2. ෦తʹkubeadmΛར༻͍ͯ͠ΔͷͰɺkubeadmͷઃఆͷ࠶ར༻͕Մೳ ( → kubeadm config patches) (2) KIND # cluster config(kind) kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 kubeadmConfigPatches: - | apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubernetesVersion: v1.16.0 apiServer: extraArgs: advertise-address: 192.168.0.103 # cluster config(kubeadm) apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubernetesVersion: v1.16.0 apiServer: extraArgs: advertise-address: 192.168.0.103
Slide 16
Slide 16 text
• ߏஙखॱ • VM্ʹγϯάϧϊʔυߏͷΫϥελʔΛίϚϯυҰͭͰ࡞͢Δ - brew install minikube - minikube start • OS X/Windows্ͰVMͷࣄલߏஙͳ͠ͰΫϥελߏங͕Մೳ (※ ֤OSͰԾԽػೳ͕༗ޮʹͳ͍ͬͯΔલఏ) (3)MINIKUBE Kubernetes OS X / Windows / Linux Master + Worker
Slide 17
Slide 17 text
• Ͱ͖Δ͜ͱ • minikube startͷҾͱͯ͠ઃఆΛ͢ - ex) minikube start --extra-config=kubelet.max-pods=100 (Node͝ͱͷpodͷ্ݶ) • ΫϥελͷΧελϚΠζҰ෦͚ͩՄೳ - Kubernetesͷόʔδϣϯࢦఆ ( --kubernetes-version= ) - ίϯςφϥϯλΠϜͷஔ͖͑ ( --container-runtime= ) - ίϯϙʔωϯτͷઃఆͷ্ॻ͖ ( --extra-config== ) (3)MINIKUBE
Slide 18
Slide 18 text
• ͳΜͱͳ͘ศརͦ͏ͳͷΘ͔ͬͨ → Θ͔͚ͬͨͲɺ͜ΕΒͷπʔϧͲ͏͍͚ͬͯͨΒ͍͍ͷ? Ͳ͏͍͚ͬͯΔ͔
Slide 19
Slide 19 text
• ݕূ༰ɺΫϥελ্Ͱಈ͔͢πʔϧ etc. ʹԠͯ͡ɺ ڥΛ͍͚Δਓ͕ଟ͍(Α͏ʹײ͡Δ) • 1) Public Cloudͷk8sڥ • ϩʔΧϧϚγϯͷϦιʔε (Memory, CPU) ʹറΒΕͳ͍ • Public CloudͷଞαʔϏεͱͷ࿈ܞ͕Ͱ͖Δ Ͳ͏͍͚ͬͯΔ͔
Slide 20
Slide 20 text
• 2) ϩʔΧϧͷk8sڥ • Managed k8sαʔϏεͱൺֱͯ͠ΫϥελͷProvisioningͷ͕࣌ؒൺֱత͍ • ηΩϡϦςΟ໘Ͱͷߟྀ (ରԠ) ͕جຊతʹෆཁ Ͳ͏͍͚ͬͯΔ͔
Slide 21
Slide 21 text
• πʔϧͷ͍͚ (ݸਓͷҙݟ) • Kind / minikube: k8sʹ৮Γ࢝ΊΔਓ͚ ( = ڥߏஙࣗମͰͭ·ͮ͘͜ͱ͕গͳ͍ɺΑΓߏ͕γϯϓϧͳͷminikube) • kubeadm : KubernetesࣗମͷཧղΛਂΊ͍ͨਓ͚ (kubeadm init/joinͰԿΛ͍ͬͯΔ͔? kubeadm-config.yaml Λ༻͍ͨΫϥελͷઃఆ etc. ) • Public Cloud: ϩʔΧϧڥͷ੍ʹҾ͔͔ͬΔΑ͏ͳ༰Λݕূ͍ͨ͠ਓ͚ (Public CloudͷଞαʔϏεͱ࿈ܞ͍ͤͨ͞߹ݴΘ͕ͣͳ) Ͳ͏͍͚ͬͯΔ͔
Slide 22
Slide 22 text
HAPPY K8S LIFE!