<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] 背景說明: 在 Kuberntes 平臺中,為了解決與容器運行時(例如 Docker)集成問題,在早期社區推出 CRI(Container Runtime Interface,容器運行時接口),以支持更多的容器運行時。而 Docker 本身并不支持 CRI(容器運行時接口)這一 Kubernetes 運行時 API,Kubernetes 用戶一直以來所使用的其實是名為 “dockershim” 的橋接服務。Dockershim 能夠轉換 Docker API 與 CRI,但在后續版本當中,Kubernetes 將不再提供這項橋接服務。 整體步驟: 1. 騰空節點 2. 停止相關服務 3. 安裝containerd服務 4. 修改kubelet配置 5. 啟動kubelet服務 6. 驗證功能 7. [可選]刪除docker服務 ## 騰空節點 ```shell $ kubectl drain --ignore-daemonsets master03 node/master03 cordoned WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-fbzqw, kube-system/kube-proxy-95hst node/master03 drained ``` ## 停止相關服務 ```shell systemctl stop kubelet systemctl stop containerd systemctl disable docker --now ``` ## 安裝containerd服務 請參考本人的博客文章 [containerd安裝](https://www.cnblogs.com/jiaxzeng/p/16708491.html) ## 修改kubelet配置 修改 kubelet 配置,將容器運行時配置為 containerd,打開 /etc/sysconfig/kubelet 文件,在該文件中可以添加一些額外的 kubelet 啟動參數,配置如下所示: ```shell cat /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock" ``` 上面的配置中我們增加了兩個參數,`--container-runtime` 參數是用來指定使用的容器運行時的,可選值為 docker 或者 remote,默認是 docker,由于我們這里使用的是 containerd 這種容器運行時,所以配置為 remote 值(也就是除 docker 之外的容器運行時都應該指定為 remote),然后第二個參數 `--container-runtime-endpoint` 是用來指定遠程的運行時服務的 endpiont 地址的,在 Linux 系統中一般都是使用 unix 套接字的形式,比如這里我們就是指定連接 containerd 的套接字地址 `unix:///run/containerd/containerd.sock`。 ## 啟動kubelet服務 ```shell systemctl start kubelet ``` ## 將節點設置運行調度 ```shell kubectl uncordon master03 ``` ## 驗證 ```shell # 確認CONTAINER-RUNTIME值 $ kubectl get nodes master03 -owide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master03 Ready control-plane,master 2d23h v1.20.15 192.168.32.184 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 containerd://1.6.9 # 創建deployment kubectl create deployment alpine --image=alpine:3.16 -- sleep 3600 # 容忍任何污點 以及 調度到指定節點 kubectl patch deployment alpine -p '{"spec": {"template": {"spec": {"tolerations": [{"operator": "Exists"}], "nodeSelector": {"kubernetes.io/hostname": "master03"}}}}}' # 查看pod運行情況 $ kubectl get pod -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES alpine-5f7998d889-8kzpg 1/1 Running 0 9s 10.244.235.11 master03 <none> <none> # 測試與pod的連通性 $ kubectl -n kube-system get pod -owide -l k8s-app=kube-dns NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES coredns-7f89b7bc75-hw4pt 1/1 Running 0 158m 10.244.241.68 master01 <none> <none> coredns-7f89b7bc75-pz9zb 1/1 Running 0 158m 10.244.59.198 master02 <none> <none> $ kubectl exec -it alpine-5f7998d889-8kzpg -- ping -c4 10.244.241.68 PING 10.244.241.68 (10.244.241.68): 56 data bytes 64 bytes from 10.244.241.68: seq=0 ttl=62 time=0.550 ms 64 bytes from 10.244.241.68: seq=1 ttl=62 time=0.485 ms 64 bytes from 10.244.241.68: seq=2 ttl=62 time=0.520 ms 64 bytes from 10.244.241.68: seq=3 ttl=62 time=0.589 ms --- 10.244.241.68 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.485/0.536/0.589 ms # 測試service連通性 $ kubectl exec -it alpine-5f7998d889-8kzpg -- wget --no-check-certificate -q -O - https://kubernetes:443/version { "major": "1", "minor": "20", "gitVersion": "v1.20.15", "gitCommit": "8f1e5bf0b9729a899b8df86249b56e2c74aebc55", "gitTreeState": "clean", "buildDate": "2022-01-19T17:23:01Z", "goVersion": "go1.15.15", "compiler": "gc", "platform": "linux/amd64" } # 清理deployment $ kubectl delete deploy alpine ``` ## [可選]刪除docker服務 - 確認docker數據目錄[停服務前執行] ```shell docker info | awk -F: '/Docker Root Dir/ {print $2}' ``` - **二進制安裝 docker 服務** 自行刪除 docker相關二進制文件、systemd配置、docker數據目錄 - **RPM 安裝的 docker 服務** docker版本 >= 18.09.0 ```shell yum remove docker-ce docker-ce-cli containerd.io ``` 17.03.0 <= docker版本 <= 18.09.0 ```shell yum remove docker-ce ``` ## 參考文檔 官網文檔:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/change-runtime-containerd/
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看