1. 命令
1.1 獲取service服務
-
獲取集群內所有命名空間的service服務
sudo kubectl get service --all-namespaces
-
獲取集群內指定命名空間的service服務
sudo kubectl get service -n命名空間
-
當權限限制到一個命名空間時,只能使用下面這個
sudo kubectl -n 命名空間 get service
-
獲取集群內當前命名空間的service服務
sudo kubectl get service
1.2 獲取pod節點
-
獲取集群所有命名空間的pod
sudo kubectl get pod --all-namespaces
-
獲取集群內指定命名空間的pod
sudo kubectl get pod -n命名空間
-
當權限限制到一個命名空間時,只能使用下面這個
sudo kubectl -n 命名空間 get pod
-
獲取集群內當前命名空間的pod
sudo kubectl get pod
1.3 網絡
在Kubernetes中,通過
Ingress
資源和直接通過http://servicename.namespace.svc.cluster.local
訪問服務(Service)的方式雖然都涉及到服務名(serviceName),但它們的使用場景和目的有所不同,因此不完全等同。
Ingress 資源
Ingress
是 Kubernetes 中的一個 API 對象,它允許你將外部 HTTP(S) 流量路由到你的集群中。Ingress
控制器負責實現這個路由,具體實現方式可能依賴于你的集群配置(例如 Nginx, Traefik, Istio 等)。在Ingress
資源中,serviceName
字段用于指定將流量路由到的后端服務的名稱。這個serviceName
指的是 Kubernetes 內部的服務(Service)名稱,而不是外部域名或URL。
直接通過 Cluster DNS 訪問服務
在 Kubernetes 集群中,每個服務(Service)都會被分配一個集群內部的 DNS 名稱,格式為servicename.namespace.svc.cluster.local
。集群中的 Pod 可以通過這個 DNS 名稱直接訪問服務。這種方式不依賴于Ingress
,它主要用于集群內部的服務發現和通信。
1.4 復制文件
##當權限限制命名空間
sudo kubectl -n 命名空間 cp pod-name:/usr/local/logs/error.log ./error.log
1.5 查看容器日志
##當權限限制命名空間
sudo kubectl -n 命名空間 logs -f pod-name #滾動輸出 (有點問題)
sudo kubectl -n 命名空間 logs --tail 10 pod-name #查看最后10行