Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 99r在线视频,国产午夜精品免费一二区,欧美**毛片动作视频

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          日志服務(wù)器哪個(gè)好用 https://blog.csdn.net/pengkey123/article/details/139898863

          1 Pods介紹

          概念:Pod是中的最小調(diào)度單元,k8s是通過(guò)定義一個(gè)Pod的資源,然后在Pod里面運(yùn)行容器,容器需要指定一個(gè)鏡像,這樣就可以用來(lái)運(yùn)行具體的服務(wù)。一個(gè)Pod封裝一個(gè)容器(也可以封裝多個(gè)容器),Pod里的容器共享存儲(chǔ)、網(wǎng)絡(luò)等。也就是說(shuō),應(yīng)該把整個(gè)pod看作虛擬機(jī),然后每個(gè)容器相當(dāng)于運(yùn)行在虛擬機(jī)的進(jìn)程。

          Pod是需要調(diào)度到k8s集群的工作節(jié)點(diǎn)來(lái)運(yùn)行的,具體調(diào)度到哪個(gè)節(jié)點(diǎn),是根據(jù)調(diào)度器實(shí)現(xiàn)的。

          在這里插入圖片描述

          2 Pod 管理多個(gè)容器

          集群中的 Pod 主要有兩種用法:

          在這里插入圖片描述

          Pod中可以同時(shí)運(yùn)行多個(gè)容器。同一個(gè)Pod中的容器會(huì)自動(dòng)的分配到同一個(gè) node 上。同一個(gè)Pod中的容器共享資源、網(wǎng)絡(luò)環(huán)境,它們總是被同時(shí)調(diào)度,在一個(gè)Pod中同時(shí)運(yùn)行多個(gè)容器是一種比較高級(jí)的用法,只有當(dāng)你的容器需要緊密配合協(xié)作的時(shí)候才考慮用這種模式。例如,你有一個(gè)容器作為web服務(wù)器運(yùn)行,需要用到共享的volume,有另一個(gè)“sidecar”容器來(lái)從遠(yuǎn)端獲取資源更新這些文件。

          2.1 init容器與邊車容器(sidecar)

          在 中,邊車容器 是在主應(yīng)用容器之前啟動(dòng)并持續(xù)運(yùn)行的容器。 Init 容器:在 Pod 初始化期間完成運(yùn)行的容器。

          Init 容器與普通的容器非常像,除了如下兩點(diǎn):

          如果 Pod 的 Init 容器失敗,kubelet 會(huì)不斷地重啟該 Init 容器直到該容器成功為止。 然而,如果 Pod 對(duì)應(yīng)的 值為 “Never”,并且 Pod 的 Init 容器失敗, 則 會(huì)將整個(gè) Pod 狀態(tài)設(shè)置為失敗。

          邊車容器是與主應(yīng)用容器在同一個(gè) Pod 中運(yùn)行的輔助容器。 這些容器通過(guò)提供額外的服務(wù)或功能(如日志記錄、監(jiān)控、安全性或數(shù)據(jù)同步)來(lái)增強(qiáng)或擴(kuò)展主應(yīng)用容器的功能, 而無(wú)需直接修改主應(yīng)用代碼。

          4 學(xué)習(xí)Pod的作用

          1.Pod是由一組緊耦合的容器組成的容器組,當(dāng)然目前最流行的就是Docker、、podman容器,Pod就可以作為1或者多個(gè)容器的載體。

          2、Pod中的所用容器會(huì)被一致調(diào)度、同節(jié)點(diǎn)部署,并且在一個(gè)“共享環(huán)境”中運(yùn)行。Pod想成一個(gè)車:車?yán)锩婧枚嘧?,每個(gè)座位都坐不同的人,每個(gè)座位想成是一個(gè)容器,這里的“共享環(huán)境”包括以下幾點(diǎn):

          1)所有容器共享一個(gè)IP地址和端口空間,意味著容器之間可以通過(guò)高效訪問(wèn),不能有端口沖突

          2)允許容器之間共享存儲(chǔ)卷,通過(guò)文件系統(tǒng)交互信息

          3)有些容器需要緊密聯(lián)系,需要一起工作。Pod提供了比容器更高層次的抽象, Pod中的所有容器使用同一個(gè)網(wǎng)絡(luò)的,即相同的IP地址和Port空間。它們可以直接用通信。同樣的,這些容器可以共享存儲(chǔ),當(dāng)K8s掛載Volume到Pod上,本質(zhì)上是將volume掛載到Pod中的每一個(gè)容器里。

          4.1 使用pod的好處 4.1.1 代碼自動(dòng)發(fā)版更新

          在這里插入圖片描述

          假如生產(chǎn)環(huán)境部署了一個(gè)go的應(yīng)用,而且部署了幾百個(gè)節(jié)點(diǎn),希望這個(gè)應(yīng)用可以定時(shí)的同步最新的代碼,以便自動(dòng)升級(jí)線上環(huán)境。這時(shí),我們不希望改動(dòng)原來(lái)的go應(yīng)用,可以開發(fā)一個(gè)Git代碼倉(cāng)庫(kù)的自動(dòng)同步服務(wù),然后通過(guò)Pod的方式進(jìn)行編排,并共享代碼目錄,就可以達(dá)到更新java應(yīng)用代碼的效果。

          4.1.2 收集業(yè)務(wù)日志

          在這里插入圖片描述

          某服務(wù)模塊已經(jīng)實(shí)現(xiàn)了一些核心的業(yè)務(wù)邏輯,并且穩(wěn)定運(yùn)行了一段時(shí)間,日志記錄在了某個(gè)目錄下,按照不同級(jí)別分別為 error.log、access.log、warning.log、info.log,現(xiàn)在希望收集這些日志并發(fā)送到統(tǒng)一的日志處理服務(wù)器上。

          這時(shí)我們可以修改原來(lái)的服務(wù)模塊,在其中添加日志收集、發(fā)送的服務(wù),但這樣可能會(huì)影響原來(lái)服務(wù)的配置、部署方式,從而帶來(lái)不必要的問(wèn)題和成本,也會(huì)增加業(yè)務(wù)邏輯和基礎(chǔ)服務(wù)的藕合度。

          如果使用Pod的方式,通過(guò)簡(jiǎn)單的編排,既可以保持原有服務(wù)邏輯、部署方式不變,又可以增加新的日志收集服務(wù)。

          而且如果我們對(duì)所有服務(wù)的日志生成有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),或者僅對(duì)日志收集服務(wù)稍加修改,就可以將日志收集服務(wù)和其他服務(wù)進(jìn)行Pod編排,提供統(tǒng)一、標(biāo)準(zhǔn)的日志收集方式。

          這里的“核心業(yè)務(wù)服務(wù)”、“日志收集服務(wù)”分別是一個(gè)鏡像,運(yùn)行在隔離的容器環(huán)境中。

          5 Pod的工作方式

          在K8s中,所有的資源都可以使用一個(gè)yaml文件來(lái)創(chuàng)建,創(chuàng)建Pod也可以使用yaml配置文件?;蛘呤褂胟ubectl run在命令行創(chuàng)建Pod(不常用)。

          5.1 自主式Pod

          所謂的自主式Pod,就是直接定義一個(gè)Pod資源,如下:

          導(dǎo)入鏡像

          [root@master1 ~]# ctr -n=k8s.io images import xianchao-tomcat.tar.gz  
          unpacking docker.io/xianchao/tomcat-8.5-jre8:v1 (sha256:14dae4798a335e2925e4ee07b3ccd519a67faab2a9155adeb76a4556478dd8d7)...done
          [root@node1 ~]# ctr -n=k8s.io images import xianchao-tomcat.tar.gz 
          unpacking docker.io/xianchao/tomcat-8.5-jre8:v1 (sha256:14dae4798a335e2925e4ee07b3ccd519a67faab2a9155adeb76a4556478dd8d7)...done
          

          定義一個(gè)pod資源

          [root@master1 ~]# vim pod-tomcat.yaml
          [root@master1 ~]# cat pod-tomcat.yaml 
          apiVersion: v1
          kind: Pod
          metadata:
            name: tomcat-test
            namespace: default
            labels:
              app:  tomcat
          spec:
            containers:
            - name: tomcat-java
              ports:
              - containerPort: 8080
              image: xianchao/tomcat-8.5-jre8:v1
              imagePullPolicy: IfNotPresent
          

          申請(qǐng)資源文件并查看pod是否創(chuàng)建成功

          [root@master1 ~]# kubectl apply -f pod-tomcat.yaml 
          pod/tomcat-test created
          [root@master1 ~]# kubectl get pods
          NAME          READY   STATUS    RESTARTS   AGE
          tomcat-test   1/1     Running   0          39s
          [root@master1 ~]# kubectl get pods -o wide
          NAME          READY   STATUS    RESTARTS   AGE     IP               NODE    NOMINATED NODE   READINESS GATES
          tomcat-test   1/1     Running   0          4m34s   10.244.166.142   node1              
          

          但是自主式Pod是存在一個(gè)問(wèn)題的,假如我們不小心刪除了pod:

          [root@master1 ~]# kubectl delete pods tomcat-test
          pod "tomcat-test" deleted
          [root@master1 ~]# kubectl get pods
          No resources found in default namespace.
          

          結(jié)果是空,說(shuō)明pod已經(jīng)被刪除了

          如果直接定義一個(gè)Pod資源,那Pod被刪除,就徹底被刪除了,不會(huì)再創(chuàng)建一個(gè)新的Pod,這在生產(chǎn)環(huán)境還是具有非常大風(fēng)險(xiǎn)的,所以今后我們接觸的Pod,都是控制器管理的。

          5.2 控制器管理的Pod

          常見的管理Pod的控制器:、、Job、CronJob、、。

          控制器管理的Pod可以確保Pod始終維持在指定的副本數(shù)運(yùn)行。

          下面使用創(chuàng)建pod:

          解壓鏡像

          [root@master1 ~]# ctr -n=k8s.io images import xianchao-nginx.tar.gz 
          unpacking docker.io/xianchao/nginx:v1 (sha256:47f9a127fcda0c39a444b9ae608055abcf71f02351665aa2c450b7bdb7434aca)...done
          [root@node1 ~]# ctr -n=k8s.io images import xianchao-nginx.tar.gz 
          unpacking docker.io/xianchao/nginx:v1 (sha256:47f9a127fcda0c39a444b9ae608055abcf71f02351665aa2c450b7bdb7434aca)...done
          

          定義資源清單

          [root@master1 ~]# vim nginx-deploy.yaml
          [root@master1 ~]# cat nginx-deploy.yaml 
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: nginx-test
            labels:
              app: nginx-deploy
          spec:
            selector:
              matchLabels:
                app: nginx
            replicas: 2
            template:
              metadata:
                labels:
                  app: nginx
              spec:
                containers:
                - name: my-nginx
                  image: xianchao/nginx:v1
                  imagePullPolicy: IfNotPresent
                  ports:
                  - containerPort: 80
          

          申請(qǐng)創(chuàng)建資源清單文件并查看pod

          [root@master1 ~]# kubectl apply -f nginx-deploy.yaml 
          deployment.apps/nginx-test created
          [root@master1 ~]# kubectl get deploy
          NAME         READY   UP-TO-DATE   AVAILABLE   AGE
          nginx-test   2/2     2            2           10s
          [root@master1 ~]# kubectl get replicaset
          NAME                    DESIRED   CURRENT   READY   AGE
          nginx-test-5b76549fbd   2         2         2       47s
          [root@master1 ~]# kubectl get pods -o wide
          NAME                          READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
          nginx-test-5b76549fbd-ggkmh   1/1     Running   0          67s   10.244.166.143   node1              
          nginx-test-5b76549fbd-q5z7x   1/1     Running   0          67s   10.244.166.144   node1              
          

          刪除其中一個(gè)pod

          [root@master1 ~]# kubectl delete pod nginx-test-5b76549fbd-ggkmh
          pod "nginx-test-5b76549fbd-ggkmh" deleted
          [root@master1 ~]# kubectl get pods
          NAME                          READY   STATUS    RESTARTS   AGE
          nginx-test-5b76549fbd-g9462   1/1     Running   0          9s
          nginx-test-5b76549fbd-q5z7x   1/1     Running   0          3m44s
          

          發(fā)現(xiàn)重新創(chuàng)建一個(gè)新的pod

          通過(guò)上面可以發(fā)現(xiàn)通過(guò)管理的pod,可以確保pod始終維持在指定副本數(shù)量

          6 Pod如何運(yùn)行應(yīng)用/工作流程

          創(chuàng)建Pod流程:

          在這里插入圖片描述

          kubectl apply -f nginx-deploy.yaml->找到config文件,基于config文件指定的用戶訪問(wèn)指定的集群,這樣就找到了。

          通過(guò)kubectl命令向API Server提交創(chuàng)建pod的請(qǐng)求,API Server接收到請(qǐng)求后,會(huì)把pod的屬性信息()寫進(jìn)etcd;API Server觸發(fā)watch機(jī)制準(zhǔn)備創(chuàng)建pod, 信息發(fā)給調(diào)度器,調(diào)度器使用調(diào)度算法選擇node,調(diào)度器把node信息發(fā)給API Server,API Server把綁定node的信息寫進(jìn)etcd;API Server又通過(guò)watch機(jī)制調(diào)用kubelet,指定pod信息,調(diào)用容器運(yùn)行時(shí)創(chuàng)建并啟動(dòng)pod內(nèi)的容器;創(chuàng)建完成之后反饋給kubelet, kubelet又將pod的狀態(tài)信息給API Server,API Server又將pod的狀態(tài)信息寫入etcd。


          主站蜘蛛池模板: 精品aⅴ一区二区三区| 福利视频一区二区牛牛| 精品3d动漫视频一区在线观看| 中文字幕在线无码一区二区三区| 亚洲爆乳精品无码一区二区| 中文字幕日韩一区二区三区不| 日韩精品一区二区三区中文版| 亚洲AV美女一区二区三区| 精品91一区二区三区| 亚洲中文字幕在线无码一区二区| 精品免费久久久久国产一区| 国产精品成人一区二区三区| 亚洲国产欧美日韩精品一区二区三区| 久久久国产精品一区二区18禁| 亚洲日韩国产精品第一页一区| 三级韩国一区久久二区综合| 白丝爆浆18禁一区二区三区| 在线免费观看一区二区三区| 国产成人久久一区二区不卡三区| 伊人色综合视频一区二区三区| 日韩在线不卡免费视频一区| 精品视频一区二区三区在线观看| 熟女少妇丰满一区二区| 在线观看国产一区| 国产成人一区二区三区在线| 夜夜添无码试看一区二区三区 | 久久国产视频一区| 性色A码一区二区三区天美传媒| 久久人妻av一区二区软件 | 国产在线不卡一区| 国产综合无码一区二区色蜜蜜| 精品国产区一区二区三区在线观看 | 日韩中文字幕一区| 无码日本电影一区二区网站| 国产小仙女视频一区二区三区| 国产精品538一区二区在线| 精品女同一区二区三区在线| 国产精品毛片a∨一区二区三区 | 99久久无码一区人妻a黑| 亚洲av成人一区二区三区观看在线| 国产激情一区二区三区小说|