官术网_书友最值得收藏!

3.3 靜態(tài)Pod

靜態(tài)Pod是由kubelet進(jìn)行管理的僅存在于特定Node上的Pod。它們不能通過(guò)API Server進(jìn)行管理,無(wú)法與ReplicationController、Deployment或者DaemonSet進(jìn)行關(guān)聯(lián),并且kubelet無(wú)法對(duì)它們進(jìn)行健康檢查。靜態(tài)Pod總是由kubelet創(chuàng)建的,并且總在kubelet所在的Node上運(yùn)行。

創(chuàng)建靜態(tài)Pod有兩種方式:配置文件方式和HTTP方式。

1.配置文件方式

首先,需要設(shè)置kubelet的啟動(dòng)參數(shù)“--config”,指定kubelet需要監(jiān)控的配置文件所在的目錄,kubelet會(huì)定期掃描該目錄,并根據(jù)該目錄下的.yaml或.json文件進(jìn)行創(chuàng)建操作。

假設(shè)配置目錄為/etc/kubelet.d/,配置啟動(dòng)參數(shù)為--config=/etc/kubelet.d/,然后重啟kubelet服務(wù)。

在目錄/etc/kubelet.d中放入static-web.yaml文件,內(nèi)容如下:

        apiVersion: v1
        kind: Pod
        metadata:
          name: static-web
          labels:
            name: static-web
        spec:
          containers:
          - name: static-web
            image: nginx
            ports:
            - name: web
              containerPort: 80

等待一會(huì)兒,查看本機(jī)中已經(jīng)啟動(dòng)的容器:

        # docker ps
        CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS      PORTS       NAMES
        2292ea231ab1    nginx    "nginx -g 'daemon off"   1 minute ago     1m
    k8s_static-web.68ee0075_static-web-k8s-node-1_default_78c7efddebf191c949cbb7aa22
    a927c8_401b96d0

可以看到一個(gè)Nginx容器已經(jīng)被kubelet成功創(chuàng)建了出來(lái)。

到Master上查看Pod列表,可以看到這個(gè)static pod:

        # kubectl get pods
        NAME                 READY       STATUS        RESTARTS   AGE
        static-web-node1   1/1         Running       0           5m

由于靜態(tài)Pod無(wú)法通過(guò)API Server直接管理,所以在Master上嘗試刪除這個(gè)Pod時(shí),會(huì)使其變成Pending狀態(tài),且不會(huì)被刪除。

        # kubectl delete pod static-web-node1
        pod "static-web-node1" deleted

        # kubectl get pods
        NAME                 READY     STATUS        RESTARTS   AGE
        static-web-node1   0/1       Pending       0           1s

刪除該P(yáng)od的操作只能是到其所在Node上將其定義文件static-web.yaml從/etc/kubelet.d目錄下刪除。

        # rm /etc/kubelet.d/static-web.yaml
        # docker ps
        // 無(wú)容器運(yùn)行

2.HTTP方式

通過(guò)設(shè)置kubelet的啟動(dòng)參數(shù)“--manifest-url”,kubelet將會(huì)定期從該URL地址下載Pod的定義文件,并以.yaml或.json文件的格式進(jìn)行解析,然后創(chuàng)建Pod。其實(shí)現(xiàn)方式與配置文件方式是一致的。

主站蜘蛛池模板: 万全县| 瓦房店市| 武夷山市| 嘉祥县| 鸡西市| 临潭县| 肇州县| 泗洪县| 安化县| 错那县| 鄂托克旗| 淳安县| 奉新县| 丘北县| 阿瓦提县| 泊头市| 丰台区| 台北市| 弥勒县| 山阴县| 白山市| 芮城县| 哈密市| 区。| 博客| 通海县| 中牟县| 临西县| 昭通市| 连江县| 绥中县| 开平市| 新余市| 五原县| 宁武县| 镇平县| 陵川县| 景德镇市| 西青区| 咸丰县| 满洲里市|