
ä¿ç®¡æœèš
ããŠã³ãäŒæ -ããŠã³ãããããã¹ããã£ã¬ã¯ããªãã³ã³ããå ã§èŠããããã«ããªã¥ãŒã ã
rslave
ãšããŠããŠã³ãããèœåïŒå€
HostToContainer
ïŒããŸãã¯ããŠã³ããããã³ã³ãããã£ã¬ã¯ããªããã¹ãã§èŠããããã«
rshared
ïŒ
Bidirectional
å€ïŒã ã¹ããŒã¿ã¹-ããŒã¿çïŒãµã€ãäžã®ããã¥ã¡ã³ã ïŒã Windowsã§ã¯ãµããŒããããŠããŸããã
ããŒã«ã«æ°žç¶ã¹ãã¬ãŒãž ïŒ Local Persistent Storage ïŒãäœæããæ©èœãè¿œå ãããŸããã
PersistentVolumes
ïŒPVïŒã¯ããããã¯ãŒã¯ããªã¥ãŒã ã ãã§ãªããããŒã«ã«ã«æ¥ç¶ããããã©ã€ãã«åºã¥ãããšãã§ããããã«ãªããŸããã ã€ãããŒã·ã§ã³ã«ã¯2ã€ã®ç®æšããããŸããaïŒããã©ãŒãã³ã¹ã®åäžïŒããŒã«ã«SSDã¯ãããã¯ãŒã¯ãã©ã€ããããé«éïŒãbïŒéïŒãã¢ã¡ã¿ã«ïŒKubernetesã€ã³ã¹ããŒã«ã§å®äŸ¡ãªã¹ãã¬ãŒãžã䜿çšããæ©èœãæäŸããŸãã ãããã®äœåã¯ãEphemeral Local Storageã®äœæãšå ±ã«å°å ¥ãããŸããK8s1.8ã§æåã«å°å ¥ãããå¶é/å¶éã¯ãããŒã¿çãšããŠçºè¡šãããããã©ã«ãã§æå¹ã«ãªããŸããã
ããã¯ãæšæºã®Kubernetesã¹ã±ãžã¥ãŒã©ãŒãããªã¥ãŒã ããããžã®å¶éãèªèïŒããã³èæ ®ïŒãã
PersistentVolumeClaims
ïŒPVCïŒããã€ã³ãããããã»ã¹ã§ïŒããŒã¿çïŒã Topology Aware Volume Scheduling ããå©çšå¯èœã«ãªããŸããã PVã¯ãã¹ã±ãžã¥ãŒã©ãŒã®æ±ºå®ãšèŠãªãããŸãã ããã¯ãPVãèŠæ±ã§ããããã«å®è£ ãããŠãããPVã¯ä»ã®å¶éïŒãªãœãŒã¹èŠä»¶ãã¢ãã£ããã£/éã¢ãã£ããã£ããªã·ãŒïŒãšäºææ§ãããã¯ãã§ãã åæã«ãå¶çŽä»ãPVã䜿çšããªãçåºã®èšç»ã¯ãåãããã©ãŒãã³ã¹ã§è¡ãå¿ èŠããããŸãã 詳现ã¯design-proposalsã«ãããŸãã
ããªã¥ãŒã /ãã¡ã€ã«ã·ã¹ãã ã®ãµããŒãã«ããããã®ä»ã®æ¹åç¹ïŒ
- pkg / volume / rbdã§ïŒäžè¬çãªlibrbdã©ã€ãã©ãªã«åºã¥ãïŒrbd-nbdã¯ã©ã€ã¢ã³ãã䜿çšããæ©èœãåããCeph RBDã®æ¹åã
- FUSEãä»ããCeph FSã®ããŠã³ãã®ãµããŒã ã
- ãããã¯ããªã¥ãŒã ãš
volumeMode
ãµããŒããAWS EBSã®ãã©ã°ã€ã³ã«è¿œå ããããããã¯ããªã¥ãŒã ã®ãµããŒããGCE PDãã©ã°ã€ã³ã«è¿œå ãããŸããã - ããŠã³ããããŠããå Žåã§ãããªã¥ãŒã ã®ãµã€ãºãå€æŽããæ©èœ ã
æåŸã«ãKubernetesã®ã¹ãã¬ãŒãžãµãã·ã¹ãã ã®å éšç¶æ ã«ã€ããŠèª¬æããè¿œå ã®ã¡ããªã㯠ãè¿œå ïŒããã³å®å®ãšå®£èšïŒããããããã°ãšã¯ã©ã¹ã¿ãŒã®ç¶æ ã®åºç¯ãªç解ãç®çãšããŠããŸãã ããšãã°ãããªã¥ãŒã ããšã«ïŒ
volume_plugin
ã«ãã£ãŠïŒããŠã³ã/ã¢ã³ããŠã³ãããã³ã¢ã¿ãã/ãã¿ããæäœã®åèšæéãããªããžã§ã³ããã³åé€ã®åèšæéãActualStateofWorldããã³DesiredStateOfWorldã®ããªã¥ãŒã ã®æ°ããã€ã³ãããã/ãã€ã³ããããŠããªãPVCããã³PVã䜿çšãããæ°ã確èªã§ããããã«ãªããŸããPVCããã³ãã®ä»ã®ããã詳现ã«ã€ããŠã¯ã ããã¥ã¡ã³ããåç §ããŠãã ããã
KubeletãããŒãããã³ãããã®ç®¡ç
Kubeletã«ã¯ã KubeletConfigurationæ§é ãæã€ããŒãžã§ã³ç®¡çãããæ§æãã¡ã€ã« ïŒã³ãã³ãã©ã€ã³ã§ãã©ã°ã䜿çšããåŸæ¥ã®æ¹æ³ã®ä»£ããã«ïŒãéããŠæ§æããæ©èœããããŸãã Kubeletãæ§æãååŸããã«ã¯ã -configãã©ã°ã䜿çšããŠå®è¡ããå¿ èŠããããŸãïŒè©³çŽ°ã«ã€ããŠã¯ããã¥ã¡ã³ããåç §ããŠãã ããïŒã ãã®ã¢ãããŒãã¯ãããŒãã®å±éãšæ§æ管çãç°¡çŽ åãããããæšå¥šãšåŒã°ããŸãã ããã¯ã
kubelet.config.k8s.io
1.10ã®ãªãªãŒã¹ã®ããŒã¿ã¹ããŒã¿ã¹ãæã€
kubelet.config.k8s.io
ãšããAPIã°ã«ãŒãã®åºçŸã«ããå¯èœã«ãªããŸããã Kubeletã®æ§æãã¡ã€ã«ã®äŸïŒ
kind: KubeletConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 evictionHard: memory.available: "200Mi"
å²çè£ä»æ§ã®æ°ãããªãã·ã§ã³ã§ãã
PodSpec
ã«ãããã³ã³ããã¯ããã»ã¹ã«å ±éã®ãµãåå空é ïŒPIDåå空éïŒã䜿çšã§ããããã«ãªããŸããã 以åã¯ãDockerã«å¿ èŠãªãµããŒãããªãã£ããããããã¯äžå¯èœã§ããããè¿œå ã®APIãåºçŸãããããäžéšã®ã³ã³ããã€ã¡ãŒãžã§äœ¿çšãããŠããŸãã å®è£ ã®çµæãContainer Runtime InterfaceïŒCRIïŒã®PIDåå空éã®3ã€ã®åé¢ã¢ãŒãããµããŒããããŸãïŒåã³ã³ãããŒïŒã€ãŸããåã³ã³ãããŒã®ç¬èªã®åå空éïŒãããŒã¹ïŒããŒã¹ã³ã³ãããŒã®å ±éåå空éïŒãããŒãã æºåå®äºã¹ããŒã¿ã¹ã¯ã¢ã«ãã¡ã§ãã
CRIã®ãã1ã€ã®éèŠãªå€æŽã¯ã Windowsã³ã³ãããŒæ§æãµããŒãã®å°å ¥ã§ãã ãããŸã§ãCRIã§æ§æã§ããã®ã¯Linuxã³ã³ãããŒã®ã¿ã§ããããOCIïŒOpen Container Initiativeã Runtime Specification ïŒä»æ§ã§ã¯ãä»ã®ãã©ãããã©ãŒã ïŒç¹ã«Windows ïŒã®æ©èœã«ã€ããŠã説æããŠããŸã ã CRIã¯ãWindowsã³ã³ããïŒã¢ã«ãã¡çïŒã®ã¡ã¢ãªãšããã»ããµã®å¶éããµããŒãããããã«ãªããŸããã
ããã«ã3ã€ã®ãªãœãŒã¹ç®¡çã¯ãŒãã³ã°ã°ã«ãŒãã®éçºãããŒã¿ã¹ããŒã¿ã¹ã«éããŸããã
- CPUãããŒãžã£ãŒ ïŒç¹å®ã®ããã»ããµãŒã³ã¢ã®å²ãåœãŠ-K8s 1.8ã«é¢ããèšäºã§è©³ãã説æãããŠããŸã ïŒ;
- Huge Pages ïŒããã2Miããã³1Gi Huge Pagesã䜿çšããæ©èœãããã¯ã倧éã®ã¡ã¢ãªãæ¶è²»ããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠã§ãïŒã
- ããã€ã¹ãã©ã°ã€ã³ ïŒ Kubeletã§ãªãœãŒã¹ã宣èšã§ãããã³ããŒåããã¬ãŒã ã¯ãŒã¯ïŒããšãã°ã Gub ãNICãFPGAãInfiniBandãªã©-Kubernetesã®ã¡ã€ã³ã³ãŒããå€æŽããå¿ èŠãªãïŒã
--pod-max-pids
ã³ã³ãœãŒã«ã³ãã³ãã®
--pod-max-pids
ã䜿çšããŠãçã§å®è¡ããããã»ã¹ã®æ°ã å¶éã§ããããã«ãªããŸããã å®è£ ã«ã¯ã¢ã«ãã¡ã¹ããŒã¿ã¹ãããã
SupportPodPidsLimit
æ©èœãå«ããå¿ èŠããããŸãã
containerd 1.1ãCRI v1alpha2ã®ãã€ãã£ããµããŒããå°å ¥ãããããKubernetes 1.10ã§ã¯ããäžéãcri-containerdãå¿ èŠãšããã«containerd 1.1ãçŽæ¥äœ¿çšã§ããŸãïŒ ããã«ã€ããŠã¯ãã®èšäºã®æåŸã§èª¬æããŸãã ïŒ ã ãŸããCRI-Oã¯CRIããŒãžã§ã³ãv1alpha2ã«æŽæ°ããCRIïŒContainer Runtime InterfaceïŒèªäœã®ïŒUIDã«å ããŠïŒ
LinuxSandboxSecurityContext
ããã³
LinuxContainerSecurityContext
ã§ã³ã³ãããŒGIDãæå®ããããã®ãµããŒããè¿œå ããŸãã
LinuxSandboxSecurityContext
ãµããŒããå®è£ ãããã¢ã«ãã¡ããŒãžã§ã³ã¹ããŒã¿ã¹ããããŸãã
ãããã¯ãŒã¯
kube -dnsã®ä»£ããã«CoreDNSã䜿çšãããªãã·ã§ã³ã¯ãããŒã¿ã¹ããŒã¿ã¹ã«éããŸããã ç¹ã«ãããã«ãã kube -dnsã䜿çšããŠkubeadmã¯ã©ã¹ã¿ãŒã䜿çšããŠã¢ããã°ã¬ãŒããããšãã«CoreDNSã«ç§»è¡ããããšãã§ããŸããããã®å Žåã kubeadmã¯
ConfigMap
-dnsããã®
ConfigMap
åºã¥ããŠ
ConfigMap
æ§æïŒã€ãŸã
Corefile
ïŒãçæããŸãã
äŒçµ±çã«ãå²çè£ã®
/etc/resolv.conf
ã¯kubeletã«ãã£ãŠå¶åŸ¡ããããã®æ§æããã®ããŒã¿ã¯
pod.dnsPolicy
åºã¥ããŠçæãã
pod.dnsPolicy
ã Kubernetes 1.10ïŒããŒã¿çïŒ ã¯ ãçã®
resolv.conf
æ§æã®ãµããŒãã æäŸããŸã ã ãããè¡ãããã«ã
PodSpec
ãã£ãŒã«ãã
dnsParams
ã«è¿œå ãã
dnsParams
ãããã«ãããæ¢åã®DNSèšå®ãæžãæããããšãã§ããŸãã 詳现ã¯design-proposalsãã芧ãã ããã
dnsPolicy: Custom
ã®äœ¿çš
dnsPolicy: Custom
ïŒ
# Pod spec apiVersion: v1 kind: Pod metadata: {"namespace": "ns1", "name": "example"} spec: ... dnsPolicy: Custom dnsParams: nameservers: ["1.2.3.4"] search: - ns1.svc.cluster.local - my.dns.search.suffix options: - name: ndots value: 2 - name: edns0
NodePort
ã®IPã¢ãã¬ã¹ã®ç¯å²ãå®çŸ©ã§ãããªãã·ã§ã³ãkube-proxyã« è¿œå ãããŸãã ã
--nodeport-addresses
ã䜿çšããŠæå¹ãªå€ã®ãã£ã«ã¿ãªã³ã°ãéå§ã
--nodeport-addresses
ïŒããã©ã«ãå€
0.0.0.0/0
ãã€ãŸããçŸåšã®
NodePort
åäœã«äžèŽãããã¹ãŠãã¹ãããããŸãïŒã iptablesãLinuxãŠãŒã¶ãŒç©ºéãIPVSããŠã£ã³ããŠãŠãŒã¶ãŒç©ºéãwinkernelã®kube -proxyã§ã®å®è£ ãæäŸãããŸãã ã¹ããŒã¿ã¹-ã¢ã«ãã¡çã
èªèšŒ
æ°ããèªèšŒæ¹æ³ãè¿œå ããŸããïŒã¢ã«ãã¡çïŒïŒ
- å€éšã¯ã©ã€ã¢ã³ããããã€ã㌠ïŒexecããŒã¹ã®ãã©ã°ã€ã³ã«å¯ŸããK8sãŠãŒã¶ãŒã®é·å¹Žã®èŠæ±ã«å¿ããŠã kubectl ïŒclient-goïŒã¯ãä»»æã®ã³ãã³ããå®è¡ããŠãã®åºåãèªã¿åãããšã§èªèšŒããŒã¿ãåä¿¡ã§ããå®è¡å¯èœãã©ã°ã€ã³ã®ãµããŒããå®è£ ããŸããïŒGCPãã©ã°ã€ã³ã¯ã³ãã³ããåŒã³åºãããã«æ§æããããšãã§ããŸãïŒ gcloud以å€ïŒã 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã¯ã©ãŠããããã€ããŒãïŒæšæºã®Kubernetesã¡ã«ããºã ã䜿çšãã代ããã«ïŒç¬èªã®èªèšŒã·ã¹ãã ãäœæã§ããããšã§ãã
- ã¯ã©ã€ã¢ã³ãïŒãªãŒãã£ãšã³ã¹ïŒãšæéã«é¢é£ä»ãããã JWTããŒã¯ã³ïŒJSON WebããŒã¯ã³ïŒãåä¿¡ ããããã®TokenRequest API ã
ããã«ãå®å®ããã¹ããŒã¿ã¹ã«ãããããŒãã®ã¢ã¯ã»ã¹ãç¹å®ã®APIïŒ
Node
èªèšŒã¢ãŒããš
NodeRestriction
ã¢ãããã·ã§ã³ãã©ã°ã€ã³ã䜿çšïŒã«å¶éããŠãéãããæ°ã®ãªããžã§ã¯ããšé¢é£ããã·ãŒã¯ã¬ããã®ã¿ã«ã¢ã¯ã»ã¹èš±å¯ãçºè¡ããããšãã§ããŸããã
CLI
kubectl get
ããã³
kubectl describe
ã«ãã£ãŠè¡šç€ºãããåºåã®åŠçãé²è¡ããŸããã Kubernetes 1.10ã§ããŒã¿ã¹ããŒã¿ã¹ãååŸããã€ãã·ã¢ããã®ã°ããŒãã«ãªç®çã¯ãããŒã¿ã衚圢åŒã§è¡šç€ºããããã®åãïŒã¯ã©ã€ã¢ã³ãã§ã¯ãªãïŒãµãŒããŒåŽã§åä¿¡ããããšã§ããããã¯ãæ¡åŒµæ©èœã䜿çšããéã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãæ¹åããããã«è¡ãããŸãã ãµãŒããŒåŽã§ä»¥åã«éå§ãããäœæ¥ïŒK8s 1.8ïŒã¯ããŒã¿ã¬ãã«ã«ãªããã¯ã©ã€ã¢ã³ãåŽã§å€§ããªå€æŽãè¡ãããŸããã
kubectl port-forwardã§ã¯ããªãœãŒã¹åã䜿çšããŠé©åãªå²çè£ãéžæããæ©èœïŒããã³å°ãªããšã1ã€ã®ãµããå®è¡ããããŸã§åŸ æ©ãã
--pod-running-timeout
ãã©ã°ïŒãè¿œå ãããããŒã転éã®ãµãŒãã¹ãæå®ãããµããŒããè¿œå ãããŸããïŒäŸïŒ
kubectl port-forward svc/myservice 8443:443
ïŒã
kubectlã³ãã³ãã®æ°ããç¥èªïŒ CronJobsã®ä»£ããã«
cj
ã
crds
-
CustomResourceDefinition
ã ããšãã°ã
kubectl get crds
ã³ãã³ãã䜿çšå¯èœã«ãªããŸããã
ãã®ä»ã®å€æŽ
- éçŽAPI ãã€ãŸã Kubernetesã®ã¡ã€ã³APIã䜿çšãããŠãŒã¶ãŒapiserverã®éçŽã¯ãå®å®ããã¹ããŒã¿ã¹ãååŸããŠãããæ£åŒã«æ¬çªç°å¢ã§äœ¿çšããæºåãã§ããŠããŸãã
- Kubeletãškube -proxy 㯠ãWindowsã§ãã€ãã£ããµãŒãã¹ãšããŠå®è¡ã§ããããã«ãªããŸããã WindowsãµãŒãã¹ã³ã³ãããŒã«ãããŒãžã£ãŒïŒSCMïŒã®ãµããŒããšãåäžã®ã³ã³ãããŒãåããçåºçšã®Hyper-Vã§ã®å®éšçãªåé¢ãµããŒããè¿œå ãããŸããã
- ãããã«ãã£ãŠã¢ã¯ãã£ãã«äœ¿çšãããŠããPVCã®åé€ããä¿è·ãããæ°žç¶ããªã¥ãŒã èŠæ±ä¿è· ïŒ
PVCProtection
ïŒPVCProtection
ãStorage Protection
å€æŽãã ãããŒã¿çã«ã¢ããã°ã¬ãŒããããŸããã - cluster-autoscalerã® AzureãµããŒãã®ã¢ã«ãã¡ããŒãžã§ã³ã
é©åæ§
- etcdã®ãµããŒããããŠããããŒãžã§ã³ã¯3.1.12ã§ãã åæã«ãetcd2ã¯ããã¯ãšã³ããšããŠå»æ¢ããããšå®£èšãããŠãããKubernetes 1.13ãªãªãŒã¹ã§ã¯ãµããŒããåé€ãããŸãã
- Dockerã®æ€èšŒæžã¿ããŒãžã§ã³-1.11.2ãã1.13.1ããã³17.03.xïŒK8s 1.9ã®ãªãªãŒã¹ä»¥éã¯å€æŽãããŠããŸããïŒ
- GoããŒãžã§ã³ã¯ïŒ1.9.2ã§ã¯ãªãïŒ1.9.3ã§ããããµããŒããããæå°ããŒãžã§ã³ã¯1.9.1ã§ãã
- CNIããŒãžã§ã³ã¯0.6.0ã§ãã
PS
ããã°ãã芧ãã ããã
- Kubernetes 1.9ïŒäž»èŠãªé©æ°ã®æŠèŠ
- ã 4ã€ã®CNCFãªãªãŒã¹1.0ããã³KubeCon 2017ã§ã®Kubernetesã®äž»èŠãªçºè¡š ãã
- Kubernetes 1.8ïŒäž»èŠãªã€ãããŒã·ã§ã³ã®æŠèŠ
- ã Docker 17.06ããã³Kubernetes 1.7ïŒäž»èŠãªé©æ° ã;
- ã æé ãªäŸ¡æ Œã®ãµãŒãã¹ãšããŠKubernetesã䜿çšããã€ã³ãã©ã¹ãã©ã¯ã㣠ãã