iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0

在上一篇中大致介紹如何去k8s部署的一個服務,在今天的要來介紹一下Namespace,以及如何確保Container的運行狀態。

Namespace

Namespace是一個用來做在叢集內部的隔離,是一個抽象的cluster。簡單的說就是將單一的k8s cluster劃分出不同的virtual cluster,每個Namespace彼此是獨立運作,而且不會互相干擾。Namespace如果沒有特別設定,所有建立的pod都會使用default這個Namespace。

Namespace的特點:

  • 在同一個k8s cluster中,每個Namespace都必須是唯一
  • Namespace被刪除時,內部的物件也會一起被刪除
  • 在不同的Namespace是無法直接存取
  • Resource Quotas可以限定Namespace所可以存取的資源

建立namespace

➜  ~ kubectl create namespace dev-space
namespace/dev-space created

查看namespace

➜  ~ kubectl get namespace
NAME              STATUS   AGE
default           Active   29d
dev-space         Active   42s
kube-node-lease   Active   29d
kube-public       Active   29d
kube-system       Active   29d

刪除namespace

➜  ~ kubectl delete namespace dev-space
namespace "dev-space" deleted

Health Check

在k8s中提供了二種類型Probe的機制,讓我們用於容器的健康檢查:

  1. liveness Probe: 用於容器的自訂健康檢查,如果liveness Probe檢查失敗,就根據pod的重啟策略來決定是否重新啟動。
  2. Readiness Probe: 用於容器的自訂準備狀況檢查,Readiness Probe檢查失敗,k8s會把pod從服務代理的分發移除,即不會再送請求給該pod。

Probe支援以下三種檢查方法

  • ExecAction: 在容器執行指令檢查,執行成功(狀態碼為0)。
  exec:
    command:
    - cat 
    - /tmp/health
  • TCPSocketAction: 對容器中的指定TCP做檢查,當指定port被佔用,檢查成功。
  tcpSocket:
    port: 8080
  • HttpGetAction: 發出一個http請求,回應的狀態碼為200~400,檢查成功。
  httpGet:
    path: /healthz
    port: 8080

完整範例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-redis
  namespace: default
spec:
  selector:
    matchLabels:
      app:  my-redis
  replicas: 1 # 期待建立pod的数量
  template:
    metadata:
      labels:
        app: my-redis # 設定label資訊
    spec:    
      containers:      
      - name: my-redis
        image: redis #映像檔
        imagePullPolicy: Always
        ports:
        - containerPort: 6379
        livenessProbe:
          tcpSocket:
            port: 6379             

查看pod詳細狀況

➜  ~ kubectl describe pod my-redis-79fcfc6889-5rm6j

https://ithelp.ithome.com.tw/upload/images/20200926/20129762FHvgotwfLe.png

有關於k8s更詳細的介紹,有興趣的人可以自行去參考官網學習。


上一篇
Day18 Kubernetes基礎介紹(1)
下一篇
Day20 Google Container Registry
系列文
微服務系統建置與監控30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言