* [ ] liveness與readiness的原理區別
`liveness`主要用來確定何時重啟容器。liveness探測的結果會存儲在livenessManager中。kubelet在syncPod時,發現該容器的liveness探針檢測失敗時,會將其加入待啟動的容器列表中,在之后的操作中會重新創建該容器。
`readiness`主要來確定容器是否已經就緒。只有當Pod中的容器都處于就緒狀態,也就是pod的condition里的Ready為true時,kubelet才會認定該Pod處于就緒狀態。而pod是否處于就緒狀態的作用是控制哪些Pod應該作為service的后端。如果Pod處于非就緒狀態,那么它們將會被從service的endpoint中移除。
* [ ] kubernetes的主組件如何做高可用
1. kube-apiserver:無狀態服務,通過SLB方式負載到下面節點的8443端口
2. kube-controller-manager:自動選主
3. kube-scheduler:自動選主
4. etcd:自動選主
* [ ] Kubernetes 宿主機上根據 PID 獲取 Pod 名稱
~~~
# 根據PID為1385的進程找到對應docker的信息
cat /proc/1385/cgroup
11:freezer:/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
10:pids:/system.slice/containerd.service/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
9:blkio:/system.slice/containerd.service/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
8:devices:/system.slice/containerd.service/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
7:perf_event:/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
6:net_cls,net_prio:/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
5:memory:/system.slice/containerd.service/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
4:hugetlb:/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
3:cpuset:/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
2:cpu,cpuacct:/system.slice/containerd.service/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
1:name=systemd:/system.slice/containerd.service/kubepods-pod77902daf_dc8d_40e2_aed1_0fd320e351de.slice/def08692ee738a89b824f3a932a3447d0827558eb2d03720fe75bdba5aa1fedb
~~~
~~~
# 根據ContainerID找到宿主機的PID
[root@node01 5170]# docker top def08692ee
UID PID PPID C STIME TTY TIME CMD
root 5170 5129 0 17:35 ? 00:00:00 nginx: master process nginx -g daemon off;
101 5229 5170 0 17:35 ? 00:00:00 nginx: worker process
~~~
* [ ] croedns掛掉一個節點
* [ ] kubelet優化
1。--pod-max-pids=50000,設置每個pod的pid數量
2。--allow-privileged=true,開放所有權限
3。--fail-swap-on=false,關閉swap內存
4。--max-pods=254,設置一個node最多的pod個數