k8s實用知識點總結

1. 資源配額

1. 預留和限制的概念

  • 預留:即至少需要的資源,對應於requestsCpurequestsMemory
  • 資源限制:最大資源限制,對應於limitsCpulimitsMemory

2. 單位的含義

  • 內存:常用的單位爲MiBGi,和常規單位的關係如下爲:
1 MiB = 2^20 bytes = 1024 kibibytes = 1048576 bytes(以2爲底數)
1 MB = 1000KB(以10爲底數)
  • CPU:常用單位爲毫核(mmilli),或者直接是核(沒有單位,如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日誌可以直接通過logsdescribe查看,具體示例如下:

# 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章