1. 資源配額
1. 預留和限制的概念
- 預留:即至少需要的資源,對應於
requestsCpu
和requestsMemory
; - 資源限制:最大資源限制,對應於
limitsCpu
和limitsMemory
;
2. 單位的含義
- 內存:常用的單位爲
MiB
和Gi
,和常規單位的關係如下爲:
1 MiB = 2^20 bytes = 1024 kibibytes = 1048576 bytes(以2爲底數)
1 MB = 1000KB(以10爲底數)
- CPU:常用單位爲毫核(
m
或milli
),或者直接是核(沒有單位,如1核直接表示爲1
),換算關係爲:1個核=1000m,當然也可以使用佔比來表示,如:1/4個核=0.25,半個核=0.5,1個整核=1。
注:在rancher中部署應用時,經常遇到deployment does not have minimum availability
異常,此時適當調大資源限額可以解決大部分的問題,下面是Chart模板中常用的配置:
resources:
limits:
memory: {{ .Values.resources.limits.memory }}
cpu: {{ .Values.resources.limits.cpu }}
requests:
memory: {{ .Values.resources.requests.memory }}
cpu: {{ .Values.resources.requests.cpu }}
2. Pod日誌查看
2.1 進入指定Pod中的指定容器
在rancher中,權限一般給的很嚴,一般不會使用docker
命令直接進入容器,而是要使用kubectl
命令才能進入:
kubectl exec -it <podName> -c <containerName> -n <namespace> -- -- /bin/bash
# 退出容器
exit
如果Pod中只有1個容器,上述命令可以直接簡寫爲kubectl exec -it <podName> -n <namespace> -- -- /bin/bash
,進入容器後即可爲所欲爲了(●ˇ∀ˇ●)。
2.2 查看Pod日誌
Pod日誌可以直接通過logs
或describe
查看,具體示例如下:
# 1. logs方式
kubectl logs <pod_name> -c <container_name> -n <namespace>
# 2. describe方式
kubectl describe pod <pod_name> -n <namespace>
得到的結果也是2個不同的,logs
方式得到的日誌是我們是部署應用時指定掛載目錄位置中的日誌,如deployment中在指定容器規約時:
spec:
containers:
...
volumeMounts:
- mountPath: /data/logs/paas
name: log-dir
那此時看到的日誌就是/data/logs/paas/xxx.log
的內容。
describe
方式得到的日誌是關於pod行爲的日誌,最典型的就是Pod節點的分配Scheduled
、鏡像的拉取Pulling
/Pulled
、容器的創建Created
及運行Started
、探針檢測Unhealthy
/Healthy
。
3. 版本
和Helm類似的,K8S集羣和K8S集羣客戶端是兩回事,在寫Chart時需要一個屬性kubeVersion
,查看版本信息:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7", GitCommit:"6f482974b76db3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-25T02:52:13Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.5", GitCommit:"753b2dbc622f5cc417845f0ff8a77f539a4213ea", GitTreeState:"clean", BuildDate:"2018-11-26T14:31:35Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
我們需要的是服務端版本,指的是GitVersion:"v1.11.5"
,所以kubeVersion: 1.11.5