K8s 內的網路檢測

  1. 在 K8s 內起一個有 curl 的 busybox POD

    kubectl run --rm -it busybox --image yauritux/busybox-curl:latest --restart=Never

  2. 直接下 ping / nslookup / curl 等等命令進行網路檢測看結果
  3. 輸入 exit 離開看結果

因為在 Hyper-V 內建立一個 Ubuntu 20.04 VM 然後起一個 K8s Cluster 卻發現在 K8s 內的服務連不上 VM 內的服務, 以下是將檢測 K8s 網路的相關語法紀錄下來.

  • 定義 pod 內容 k8s-chk.yml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: busybox
        namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: busybox
      template:
        metadata:
          labels:
            app: busybox
        spec:
          containers:
          - name: busybox
            image: yauritux/busybox-curl:latest
            command:
              - sleep
              - "3600"
            imagePullPolicy: IfNotPresent
  • 啟動檢測 pod

    kubectl apply -f k8s-chk.yml
    localadmin@iiidevops1:~/test$ kubectl apply -f k8s-chk.yml
    deployment.apps/busybox created

  • 取得 pod name

    kubectl get pod | grep busybox
    localadmin@iiidevops1:~/test$ kubectl get pod | grep busybox
    busybox-5d5bd64f66-zlvls                1/1     Running   0          2m29s

  • 安裝 curl

    kubectl exec busybox-5d5bd64f66-zlvls -- opkg-install curl

  • 進行目標網址檢測

    kubectl exec busybox-5d5bd64f66-zlvls -- ping -c 5 172.16.0.171
    kubectl exec busybox-5d5bd64f66-zlvls -- traceroute 172.16.0.171
    kubectl exec busybox-5d5bd64f66-zlvls -- curl -k https://172.16.0.171:5443/

kubectl delete deploy busybox
localadmin@devops1:~/test$ kubectl delete deploy busybox
deployment.apps "busybox" deleted
  • 預設完整服務網址是 {SERVICE_NAME}.{NAMESPACE_NAME}.svc.cluster.local
  • Exp. 一個簡易網頁服務
    • SERVICE_NAME : test-20230110-37-master-serv-svc
    • NAMESPACE_NAME : test-20230110-37
    • test-20230110-37-master-serv-svc.test-20230110-37.svc.cluster.local
  • Exp. 在 namespace : test-20230110-37 內的 POD 內可直接使用 service name : test-20230110-37-master-serv-svc 當網址 看結果
  • Exp. 在 namespace : test-20230110-37 外的 POD 內需要使用完整的服務網址 : test-20230110-37-master-serv-svc.test-20230110-37.svc.cluster.local 看結果
  • tech/k8s-netchk.txt
  • 上一次變更: 2023/04/07 12:43
  • jonathan