## Kubernetes * [1.ä»ä¹æ¯Kubernetesï¼](#1ä»ä¹æ¯kubernetes) * [2.Kubernetesä¸Dockeræä»ä¹å ³ç³»ï¼](#2kubernetesä¸dockeræä»ä¹å ³ç³») * [3.ä»ä¹æ¯Container Orchestrationï¼](#3ä»ä¹æ¯container-orchestration) * [4.Kuberneteså¦ä½ç®å容å¨åé¨ç½²ï¼](#4kuberneteså¦ä½ç®å容å¨åé¨ç½²) * [5.ä»ä¹æ¯Google容å¨å¼æï¼](#5ä»ä¹æ¯google容å¨å¼æ) * [6.ä»ä¹æ¯Heapsterï¼](#6ä»ä¹æ¯heapster) * [7.ä»ä¹æ¯Minikubeï¼](#7ä»ä¹æ¯minikube) * [8.ä»ä¹æ¯Kubectlï¼](#8ä»ä¹æ¯kubectl) * [9.ä»ä¹æ¯Kubeletï¼](#9ä»ä¹æ¯kubelet) * [10.Kubernetes Architectureçä¸åç»ä»¶æåªäºï¼](#10kubernetes-architectureçä¸åç»ä»¶æåªäº) * [11.ä½ å¯¹Kube-proxyæä»ä¹äºè§£ï¼](#11ä½ å¯¹kube-proxyæä»ä¹äºè§£) * [12.æ¨è½å¦ä»ç»ä¸ä¸Kubernetesä¸ä¸»èç¹ç工使 åµï¼](#12æ¨è½å¦ä»ç»ä¸ä¸kubernetesä¸ä¸»èç¹ç工使 åµ) * [13.kube-apiserveråkube-schedulerçä½ç¨æ¯ä»ä¹ï¼](#13kube-apiserveråkube-schedulerçä½ç¨æ¯ä»ä¹) * [14.ä½ è½ç®è¦ä»ç»ä¸ä¸Kubernetesæ§å¶ç®¡çå¨åï¼](#14ä½ è½ç®è¦ä»ç»ä¸ä¸kubernetesæ§å¶ç®¡çå¨å) * [15.ä»ä¹æ¯etcdï¼](#15ä»ä¹æ¯etcd) * [16.ä½ å¯¹Kubernetesçè´è½½åè¡¡å¨æä»ä¹äºè§£ï¼](#16ä½ å¯¹kubernetesçè´è½½åè¡¡å¨æä»ä¹äºè§£) * [17.ä»ä¹æ¯Ingressç½ç»ï¼å®æ¯å¦ä½å·¥ä½çï¼](#17ä»ä¹æ¯ingressç½ç»å®æ¯å¦ä½å·¥ä½ç) * [18.æ¨å¯¹äºæ§å¶å¨ç®¡ç卿ä½äºè§£ï¼](#18æ¨å¯¹äºæ§å¶å¨ç®¡ç卿ä½äºè§£) * [19.ä»ä¹æ¯Containerèµæºçæ§ï¼](#19ä»ä¹æ¯containerèµæºçæ§) * [20.Replica Set å Replication Controllerä¹é´æä»ä¹åºå«ï¼](#20replica-set-å-replication-controllerä¹é´æä»ä¹åºå«) #### 1.ä»ä¹æ¯Kubernetesï¼ Kubernetesæ¯ä¸ä¸ªå¼æºå®¹å¨ç®¡çå·¥å ·ï¼è´è´£å®¹å¨é¨ç½²ï¼å®¹å¨æ©ç¼©å®¹ä»¥åè´è½½å¹³è¡¡ãä½ä¸ºGoogleçåæä¹ä½ï¼å®æä¾äºåºè²ç社åºï¼å¹¶ä¸ææäºæä¾ååä½ãå æ¤ï¼æä»¬å¯ä»¥è¯´Kubernetes䏿¯ä¸ä¸ªå®¹å¨åå¹³å°ï¼èæ¯ä¸ä¸ªå¤å®¹å¨ç®¡çè§£å³æ¹æ¡ã #### 2.Kubernetesä¸Dockeræä»ä¹å ³ç³»ï¼ 伿å¨ç¥ï¼Dockeræä¾å®¹å¨ççå½å¨æç®¡çï¼Dockeréåæå»ºè¿è¡æ¶å®¹å¨ã使¯ï¼ç±äºè¿äºåç¬ç容å¨å¿ é¡»éä¿¡ï¼å æ¤ä½¿ç¨Kubernetesãå æ¤ï¼æä»¬è¯´Dockeræå»ºå®¹å¨ï¼è¿äºå®¹å¨éè¿Kubernetesç¸äºéä¿¡ãå æ¤ï¼å¯ä»¥ä½¿ç¨Kubernetesæå¨å ³èåç¼æå¨å¤ä¸ªä¸»æºä¸è¿è¡ç容å¨ã #### 3.ä»ä¹æ¯Container Orchestrationï¼ èèä¸ä¸ªåºç¨ç¨åºæ5-6个微æå¡çåºæ¯ãç°å¨ï¼è¿äºå¾®æå¡è¢«æ¾å¨åç¬ç容å¨ä¸ï¼ä½å¦ææ²¡æå®¹å¨ç¼æå°±æ æ³è¿è¡éä¿¡ãå æ¤ï¼ç±äºç¼ææå³çææä¹å¨å¨é³ä¹ä¸åè°å ±å¤ï¼æä»¥ç±»ä¼¼ç容å¨ç¼ææå³çå个容å¨ä¸çæææå¡ååå·¥ä½ä»¥æ»¡è¶³å个æå¡å¨çéæ±ã #### 4.Kuberneteså¦ä½ç®å容å¨åé¨ç½²ï¼ ç±äºå ¸ååºç¨ç¨åºå°å ·æè·¨å¤ä¸ªä¸»æºè¿è¡ç容å¨é群ï¼å æ¤ææè¿äºå®¹å¨é½éè¦ç¸äºéä¿¡ãå æ¤ï¼è¦åå°è¿ä¸ç¹ï¼ä½ éè¦ä¸äºè½å¤è´è½½å¹³è¡¡ï¼æ©å±åçæ§å®¹å¨çä¸è¥¿ãç±äºKubernetesä¸äºæ å ³å¹¶ä¸å¯ä»¥å¨ä»»ä½å ¬å ±/ç§ææä¾åä¸è¿è¡ï¼å æ¤å¿ é¡»æ¯æ¨ç®å容å¨åé¨ç½²çéæ©ã #### 5.ä»ä¹æ¯Google容å¨å¼æï¼ Google Container Engineï¼GKEï¼æ¯Docker容å¨åé群ç弿ºç®¡çå¹³å°ãè¿ä¸ªåºäºKubernetesçå¼æä» æ¯æå¨Googleçå ¬å ±äºæå¡ä¸è¿è¡ç群éã #### 6.ä»ä¹æ¯Heapsterï¼ Heapsteræ¯ç±æ¯ä¸ªèç¹ä¸è¿è¡çKubeletæä¾çé群èå´çæ°æ®èåå¨ãæ¤å®¹å¨ç®¡çå·¥å ·å¨Kuberneteséç¾¤ä¸æ¬æºæ¯æï¼å¹¶ä½ä¸ºpodè¿è¡ï¼å°±åé群ä¸çä»»ä½å ¶ä»pod䏿 ·ãå æ¤ï¼å®åºæ¬ä¸åç°é群ä¸çææèç¹ï¼å¹¶éè¿æºä¸Kubernetesä»£çæ¥è¯¢é群ä¸Kubernetesèç¹ç使ç¨ä¿¡æ¯ã #### 7.ä»ä¹æ¯Minikubeï¼ Minikubeæ¯ä¸ç§å·¥å ·ï¼å¯ä»¥å¨æ¬å°è½»æ¾è¿è¡Kubernetesãè¿å°å¨èææºä¸è¿è¡åèç¹Kubernetes群éã #### 8.ä»ä¹æ¯Kubectlï¼ Kubectlæ¯ä¸ä¸ªå¹³å°ï¼æ¨å¯ä»¥ä½¿ç¨è¯¥å¹³å°å°å½ä»¤ä¼ éç»é群ãå æ¤ï¼å®åºæ¬ä¸ä¸ºCLIæä¾äºé对Kubernetesé群è¿è¡å½ä»¤çæ¹æ³ï¼ä»¥åå建å管çKubernetesç»ä»¶çåç§æ¹æ³ã #### 9.ä»ä¹æ¯Kubeletï¼ è¿æ¯ä¸ä¸ªä»£çæå¡ï¼å®å¨æ¯ä¸ªèç¹ä¸è¿è¡ï¼å¹¶ä½¿ä»æå¡å¨ä¸ä¸»æå¡å¨éä¿¡ãå æ¤ï¼Kubeletå¤çPodSpec䏿ä¾ç»å®ç容å¨çæè¿°ï¼å¹¶ç¡®ä¿PodSpecä¸æè¿°ç容å¨è¿è¡æ£å¸¸ã #### 10.Kubernetes Architectureçä¸åç»ä»¶æåªäºï¼ Kubernetes Architectureä¸»è¦æä¸¤ä¸ªç»ä»¶ - 主èç¹åå·¥ä½èç¹ãå¦ä¸å¾æç¤ºï¼masteråworkerèç¹ä¸å å«è®¸å¤å ç½®ç»ä»¶ã主èç¹å ·ækube-controller-managerï¼kube-apiserverï¼kube-schedulerçãèå·¥ä½èç¹å ·æå¨æ¯ä¸ªèç¹ä¸è¿è¡çkubeletåkube-proxyã #### 11.ä½ å¯¹Kube-proxyæä»ä¹äºè§£ï¼ Kube-proxyå¯ä»¥å¨æ¯ä¸ªèç¹ä¸è¿è¡ï¼å¹¶ä¸å¯ä»¥è·¨å端ç½ç»æå¡è¿è¡ç®åçTCP / UDPæ°æ®å 转åãåºæ¬ä¸ï¼å®æ¯ä¸ä¸ªç½ç»ä»£çï¼å®åæ äºæ¯ä¸ªèç¹ä¸Kubernetes APIä¸é ç½®çæå¡ãå æ¤ï¼Dockerå¯é¾æ¥çå ¼å®¹ç¯å¢åéæä¾ç±ä»£çæå¼ç群éIPå端å£ã #### 12.æ¨è½å¦ä»ç»ä¸ä¸Kubernetesä¸ä¸»èç¹ç工使 åµï¼ Kubernetes masteræ§å¶å®¹å¨åå¨çèç¹åèç¹å é¨ãç°å¨ï¼è¿äºåç¬ç容å¨å å«å¨å®¹å¨å é¨åæ¯ä¸ªå®¹å¨å é¨ï¼æ¨å¯ä»¥æ ¹æ®é ç½®åè¦æ±æ¥æä¸åæ°éç容å¨ãå æ¤ï¼å¦æå¿ é¡»é¨ç½²podï¼åå¯ä»¥ä½¿ç¨ç¨æ·ç颿å½ä»¤è¡çé¢é¨ç½²å®ä»¬ãç¶åï¼å¨èç¹ä¸è°åº¦è¿äºpodï¼å¹¶æ ¹æ®èµæºéæ±ï¼å°podåé ç»è¿äºèç¹ãkube-apiserverç¡®ä¿å¨Kubernetesèç¹å主ç»ä»¶ä¹é´å»ºç«éä¿¡ã #### 13.kube-apiserveråkube-schedulerçä½ç¨æ¯ä»ä¹ï¼ kube -apiserveréµå¾ªæ¨ªåæ©å±æ¶æï¼æ¯ä¸»èç¹æ§å¶é¢æ¿çå端ãè¿å°å ¬å¼Kubernetes主èç¹ç»ä»¶çææAPIï¼å¹¶è´è´£å¨Kubernetesèç¹åKubernetes主ç»ä»¶ä¹é´å»ºç«éä¿¡ã kube-schedulerè´è´£å·¥ä½èç¹ä¸å·¥ä½è´è½½çåé å管çãå æ¤ï¼å®æ ¹æ®èµæºéæ±éæ©æåéçèç¹æ¥è¿è¡æªè°åº¦çpodï¼å¹¶è·è¸ªèµæºå©ç¨çãå®ç¡®ä¿ä¸å¨å·²æ»¡çèç¹ä¸è°åº¦å·¥ä½è´è½½ã #### 14.ä½ è½ç®è¦ä»ç»ä¸ä¸Kubernetesæ§å¶ç®¡çå¨åï¼ å¤ä¸ªæ§å¶å¨è¿ç¨å¨ä¸»èç¹ä¸è¿è¡ï¼ä½æ¯ä¸èµ·ç¼è¯ä¸ºå个è¿ç¨è¿è¡ï¼å³Kubernetesæ§å¶å¨ç®¡çå¨ãå æ¤ï¼Controller Manageræ¯ä¸ä¸ªåµå ¥æ§å¶å¨å¹¶æ§è¡å½å空é´å建åå徿¶éç宿¤ç¨åºã宿¥æè´£ä»»å¹¶ä¸APIæå¡å¨é信以管ç端ç¹ã #### 15.ä»ä¹æ¯etcdï¼ etcdæ¯ç¨Goç¼ç¨è¯è¨ç¼åçï¼æ¯ä¸ä¸ªåå¸å¼é®å¼åå¨ï¼ç¨äºåè°åå¸å¼å·¥ä½ãå æ¤ï¼Etcdåå¨Kubernetesé群çé ç½®æ°æ®ï¼è¡¨ç¤ºå¨ä»»ä½ç»å®æ¶é´ç¹çéç¾¤ç¶æã #### 16.ä½ å¯¹Kubernetesçè´è½½åè¡¡å¨æä»ä¹äºè§£ï¼ è´è½½åè¡¡å¨æ¯æ´é²æå¡çæå¸¸è§åæ åæ¹å¼ä¹ä¸ãæ ¹æ®å·¥ä½ç¯å¢ä½¿ç¨ä¸¤ç§ç±»åçè´è½½åè¡¡å¨ï¼å³å é¨è´è½½åè¡¡å¨æå¤é¨è´è½½åè¡¡å¨ãå é¨è´è½½åè¡¡å¨èªå¨å¹³è¡¡è´è½½å¹¶ä½¿ç¨æéé ç½®åé 容å¨ï¼èå¤é¨è´è½½åè¡¡å¨å°æµéä»å¤é¨è´è½½å¼å¯¼è³å端容å¨ã #### 17.ä»ä¹æ¯Ingressç½ç»ï¼å®æ¯å¦ä½å·¥ä½çï¼ Ingressç½ç»æ¯ä¸ç»è§åï¼å å½Kubernetesé群çå ¥å£ç¹ãè¿å è®¸å ¥ç«è¿æ¥ï¼å¯ä»¥å°å ¶é 置为éè¿å¯è®¿é®çURLï¼è´è½½å¹³è¡¡æµéæéè¿æä¾åºäºåç§°çèæä¸»æºä»å¤é¨æä¾æå¡ãå æ¤ï¼Ingressæ¯ä¸ä¸ªAPI对象ï¼é常éè¿HTTP管çéç¾¤ä¸æå¡çå¤é¨è®¿é®ï¼æ¯æ´é²æå¡çææææ¹å¼ã ç°å¨ï¼è®©æä»¥ä¸ä¸ªä¾ååæ¨è§£éIngressç½ç»çå·¥ä½ã æ2个èç¹å ·æå¸¦æLinuxæ¡¥æ¥å¨çpodåæ ¹ç½ç»å½å空é´ã餿¤ä¹å¤ï¼è¿æä¸ä¸ªå为flannel0ï¼ç½ç»æä»¶ï¼çæ°èæä»¥å¤ªç½è®¾å¤è¢«æ·»å å°æ ¹ç½ç»ä¸ã ç°å¨ï¼å设æä»¬å¸ææ°æ®å ä»pod1æµåpod 4ã å æ¤ï¼æ°æ®å å°pod1çç½ç»ä¿çå¨eth0ï¼å¹¶è¿å ¥veth0çæ ¹ç½ç»ã ç¶åå®è¢«ä¼ éç»cbr0ï¼è¿ä½¿å¾ARPè¯·æ±æ¾å°ç®çå°ï¼å¹¶ä¸åç°è¯¥èç¹ä¸æ²¡æäººå ·æç®çå°IPå°åã å æ¤ï¼æ¡¥æ¥å¨å°æ°æ®å åéå°flannel0ï¼å 为èç¹çè·¯ç±è¡¨é ç½®äºflannel0ã ç°å¨ï¼flannel宿¤ç¨åºä¸KubernetesçAPIæå¡å¨éä¿¡ï¼ä»¥äºè§£ææpod IPåå ¶åèªçèç¹ï¼ä»¥å建pods IPå°èç¹IPçæ å°ã ç½ç»æä»¶å°æ¤æ°æ®å å°è£ å¨UDPæ°æ®å ä¸ï¼å ¶ä¸é¢å¤çæ 头尿ºåç®æ IPæ´æ¹ä¸ºåèªçèç¹ï¼å¹¶éè¿eth0åéæ¤æ°æ®å ã ç°å¨ï¼ç±äºè·¯ç±è¡¨å·²ç»ç¥éå¦ä½å¨èç¹ä¹é´è·¯ç±æµéï¼å æ¤å®å°æ°æ®å åéå°ç®æ èç¹2ã æ°æ®å å°è¾¾node2çeth0å¹¶è¿åå°flannel0以解å°è£ 并卿 ¹ç½ç»å½å空é´ä¸å°å ¶ååã åæ ·ï¼æ°æ®å 被转åå°Linuxç½æ¡¥ä»¥ååºARP请æ±ä»¥æ¾åºå±äºveth1çIPã æ°æ®å æç»ç©¿è¿æ ¹ç½ç»å¹¶å°è¾¾ç®æ Pod4ã #### 18.æ¨å¯¹äºæ§å¶å¨ç®¡ç卿ä½äºè§£ï¼ Cloud Controller Managerè´è´£æä¹ åå¨ï¼ç½ç»è·¯ç±ï¼ä»æ ¸å¿Kubernetesç¹å®ä»£ç 䏿½è±¡åºç¹å®äºäºç代ç ï¼ä»¥å管çä¸åºå±äºæå¡çéä¿¡ãå®å¯è½ä¼åæå 个ä¸åç容å¨ï¼å ·ä½åå³äºæ¨è¿è¡çæ¯åªä¸ªäºå¹³å°ï¼ç¶åå®å¯ä»¥ä½¿äºä¾åºååKubernetes代ç 卿²¡æä»»ä½ç¸äºä¾èµçæ åµä¸å¼åãå æ¤ï¼äºä¾åºåå¼åä»ä»¬ç代ç å¹¶å¨è¿è¡Kubernetesæ¶ä¸Kubernetesäºæ§å¶å¨ç®¡çå¨è¿æ¥ã #### 19.ä»ä¹æ¯Containerèµæºçæ§ï¼ 对äºç¨æ·èè¨ï¼äºè§£åºç¨ç¨åºçæ§è½åææä¸åæ½è±¡å±çèµæºå©ç¨çé常éè¦ï¼Kuberneteséè¿å¨å®¹å¨ï¼podï¼æå¡åæ´ä¸ªé群çä¸å级å«å建æ½è±¡æ¥èèé群ç管çãç°å¨ï¼å¯ä»¥çè§æ¯ä¸ªçº§å«ï¼è¿åªæ¯å®¹å¨èµæºçè§ã #### 20.Replica Set å Replication Controllerä¹é´æä»ä¹åºå«ï¼ Replica Set å Replication Controllerå ä¹å®å ¨ç¸åãå®ä»¬é½ç¡®ä¿å¨ä»»ä½ç»å®æ¶é´è¿è¡æå®æ°éçpod坿¬ãä¸åä¹å¤å¨äºå¤å¶pod使ç¨çéæ©å¨ãReplica Set使ç¨åºäºéåçéæ©å¨ï¼èReplication Controller使ç¨åºäºæéçéæ©å¨ã Equity-Basedéæ©å¨ï¼è¿ç§ç±»åçéæ©å¨å è®¸ææ ç¾é®åå¼è¿è¡è¿æ»¤ãå æ¤ï¼å¨å¤è¡æ¯è¯ä¸ï¼åºäºEquityçéæ©å¨å°ä» æ¥æ¾ä¸æ ç¾å ·æå®å ¨ç¸åçè¯çpodã 示ä¾ï¼å设æ¨çæ ç¾é®è¡¨ç¤ºapp = nginxï¼é£ä¹ï¼ä½¿ç¨æ¤éæ©å¨ï¼æ¨åªè½æ¥æ¾æ ç¾åºç¨ç¨åºçäºnginxçé£äºpodã Selector-Basedéæ©å¨ï¼æ¤ç±»åçéæ©å¨å è®¸æ ¹æ®ä¸ç»å¼è¿æ»¤é®ãå æ¤ï¼æ¢å¥è¯è¯´ï¼åºäºSelectorçéæ©å¨å°æ¥æ¾å·²å¨éå䏿åå ¶æ ç¾çpodã 示ä¾ï¼å设æ¨çæ ç¾é®å¨ï¼nginxï¼NPSï¼Apacheï¼ä¸æ¾ç¤ºåºç¨ç¨åºãç¶åï¼ä½¿ç¨æ¤éæ©å¨ï¼å¦ææ¨çåºç¨ç¨åºçäºä»»ä½nginxï¼NPSæApacheï¼åéæ©å¨å°å ¶è§ä¸ºçå®ç»æã #### åèèµæ https://blog.csdn.net/mingongge/article/details/100613465