[k8s]kubelet最佳實戰


kubelet端口解析:

10250  –port:           kubelet服務監聽的端口,api會檢測他是否存活
10248  –healthz-port:   健康檢查服務的端口
10255  –read-only-port: 只讀端口,可以不用驗證和授權機制,直接訪問
4194   –cadvisor-port:  當前節點 cadvisor 運行的端口

kubelet參數手頭書

參數 解釋 默認值
–address kubelet 服務監聽的地址 0.0.0.0
–port kubelet 服務監聽的端口 10250
–read-only-port 只讀端口,可以不用驗證和授權機制,直接訪問 10255
–allow-privileged 是否允許容器運行在 privileged 模式 false
–api-servers 以逗號分割的 API Server 地址,用於和集群中數據交互 []
–cadvisor-port 當前節點 cadvisor 運行的端口 4194
–config 本地 manifest 文件的路徑或者目錄 ""
–file-check-frequency 輪詢本地 manifest 文件的時間間隔 20s
–container-runtime 后端容器 runtime,支持 docker 和 rkt docker
–enable-server 是否啟動 kubelet HTTP server true
–healthz-bind-address 健康檢查服務綁定的地址,設置成 0.0.0.0 可以監聽在所有網絡接口 127.0.0.1
–healthz-port 健康檢查服務的端口 10248
–hostname-override 指定 hostname,如果非空會使用這個值作為節點在集群中的標識 ""
–log-dir 日志文件,如果非空,會把 log 寫到該文件 ""
–logtostderr 是否打印 log 到終端 true
–max-open-files 允許 kubelet 打開文件的最大值 1000000
–max-pods 允許 kubelet 運行 pod 的最大值 110
–pod-infra-container-image 基礎鏡像地址,每個 pod 最先啟動的容器,會配置共享的網絡 gcr.io/google_containers/pause-amd64:3.0
–root-dir kubelet 保存數據的目錄 /var/lib/kubelet
–runonce 從本地 manifest 或者 URL 指定的 manifest 讀取並運行結束就退出,和 --api-servers 、--enable-server 參數不兼容
–v 日志 level 0

簡單的啟動kubelet

kubelet \
    --api-servers=http://192.168.14.132:8080

完善的啟動kubelet

kubelet \
    --api-servers=http://192.168.14.132:8080 \
    --pod-infra-container-image=kubeguide/pause-amd64:3.0 \
    --allow-privileged=true \
    --kubelethostname-override=192.168.14.133 \
    --logtostderr=false \
    --log-dir=/root/logs/ \
    --v=2

查看node狀態

參考:
https://k8smeetup.github.io/docs/concepts/architecture/nodes/

kubectl describe node

查看cadvisor(kubelet自帶)

http://192.168.14.133:4194

狀態觀察

參考:
https://k8smeetup.github.io/docs/concepts/architecture/nodes/

  • 50s容器由exit狀態到刪掉
kubectl delete -f busybox.yaml  #50s容器由exit狀態到刪掉
  • 5min節點好像由不可用到刪除
kube-controller-manager一個參數:根據節點狀態刪除.
# The grace period for deleting pods on failed nodes. (default 5m0s)5分鍾
--pod-eviction-timeout duration

Ready 條件處於狀態 “Unknown” 或者 “False” 的時間超過了 pod-eviction-timeout(一個傳遞給 kube-controller-manager 的參數),node 上的所有 Pods 都會被 Node 控制器計划刪除。默認的刪除超時時長為5分鍾。

kubelet報錯但是沒解決的-據說是1.7版本的bug.我是1.7.10

W1122 15:49:22.233484   71196 helpers.go:793] eviction manager: no observation found for eviction signal allocatableNodeFs.available
W1122 15:49:32.301474   71196 helpers.go:793] eviction manager: no observation found for eviction signal allocatableNodeFs.available
W1122 15:49:42.355303   71196 helpers.go:793] eviction manager: no observation found for eviction signal allocatableNodeFs.available
W1122 15:49:52.402125   71196 helpers.go:793] eviction manager: no observation found for eviction signal allocatableNodeFs.available

etcd報出問題--這個是etcd版本問題,不影響使用,我是yum install etcd搞的

[root@m1 yaml]# E1122 16:19:49.499797   57214 watcher.go:210] watch chan error: etcdserver: mvcc: required revision has been compacted
E1122 16:21:15.609115   57214 watcher.go:210] watch chan error: etcdserver: mvcc: required revision has been compacted

kubelet啟動后會自動創建它的工作目錄/var/lib/kubelet/

[root@n1 kubernetes]# tree /var/lib/kubelet/
/var/lib/kubelet/
├── plugins
└── pods
    ├── f56d5553-cf58-11e7-adbb-000c29154f03
    │   ├── containers
    │   │   └── busybox
    │   │       └── 24bd58a0
    │   ├── etc-hosts
    │   ├── plugins
    │   └── volumes
    ├── fffefc20-cf58-11e7-adbb-000c29154f03
    │   ├── containers
    │   │   └── nginx
    │   │       └── 221a8328
    │   ├── etc-hosts
    │   ├── plugins
    │   └── volumes
    ├── ffff1611-cf58-11e7-adbb-000c29154f03
    │   ├── containers
    │   │   └── nginx
    │   │       └── d2d2f44d
    │   ├── etc-hosts
    │   ├── plugins
    │   └── volumes
    └── ffff1ff8-cf58-11e7-adbb-000c29154f03
        ├── containers
        │   └── nginx
        │       └── bd101c6e
        ├── etc-hosts
        ├── plugins
        └── volumes


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM