k8s 中pod 區分多replicas和 istio等服務網格

問題描述

當發現pod 出現2/2 覺得是副本數變成了2,並且kubectl logs podname 沒法查看
[root@master49 ~]# kubectl get pod
NAME                                                              READY   STATUS    RESTARTS   AGE
dev-elastic-job-lite-profile-a-5fc7b6c67d-wdrg8                   2/2     Running   0          35d


[root@master49 ~]# kubectl logs dev-elastic-job-lite-profile-a-5fc7b6c67d-wdrg8
error: a container name must be specified for pod dev-elastic-job-lite-profile-a-5fc7b6c67d-wdrg8, choose one of: [dev-elastic-job-lite-profile-a istio-proxy] or one of the init containers: [istio-init]
查看deployment 信息 發現只有一個副本數
[root@master49 ~]# kubectl get deployments.apps| grep dev-elastic-job-lite-profile-a
dev-elastic-job-lite-profile-a                    1/1     1            1           56d

image.png

查看是安裝了服務網格istio

Serivce Mesh 能夠看做是一個位於 TCP/IP 之上的網絡模型,抽象了服務間可靠通訊的機制。
但與 TCP 不一樣,它是面向應用的,爲應用提供了統一的可視化和控制。web

如下是 Istio 的核心功能:安全

  • HTTP、gRPC、WebSocket 和 TCP 流量的自動負載均衡。
  • 屏蔽分佈式系統通訊的複雜性 服務只用關注業務邏輯。經過豐富的路由規則、重試、故障轉移和故障注入,能夠對流量行爲進行細粒度控制。
  • 對應用透明,Service Mesh 組件能夠單獨升級。
  • 可插入的策略層和配置 API,支持訪問控制、速率限制和配額。
  • 對出入集羣入口和出口中全部流量的自動度量指標、日誌記錄和追蹤。
  • 經過強大的基於身份的驗證和受權,在集羣中實現安全的服務間通訊

最實用的就是日誌功能,當pod啓動失敗時你很難看到日誌,當出現 1/2時表明pod未啓動成功
[root@master49 ~]# kubectl get pod --all-namespaces | grep 1/2
default          test-htjfweb-marketing-web-profile-a-6866876546-j2x9z             1/2     Running            0          35d
[root@master49 ~]# 
[root@master49 ~]# kubectl logs -f --tail=20 test-htjfweb-marketing-web-profile-a-6866876546-j2x9z test-htjfweb-marketing-web-profile-a
2021-05-16 05:34:02.651 TID:N/A  [Apollo-RemoteConfigRepository-1] [] WARN  c.c.f.apollo.internals.AbstractConfigRepository:26

k8s機器deployment 的副本數設置命令

[root@master49 ~]# kubectl scale deployment dev-elastic-job-lite-profile-a --replicas=3
deployment.apps/dev-elastic-job-lite-profile-a scaled
[root@master49 ~]# 
[root@master49 ~]# 
[root@master49 ~]# kubectl get deployments.apps | grep dev-elastic-job-lite-profile-a
dev-elastic-job-lite-profile-a                    1/3     3            1           56d
[root@master49 ~]# 
[root@master49 ~]# 
[root@master49 ~]# kubectl get deployments.apps | grep dev-elastic-job-lite-profile-a
dev-elastic-job-lite-profile-a                    3/3     3            1           56d
[root@master49 ~]# 
[root@master49 ~]# kubectl get pod | grep dev-elastic-job-lite-profile-a
dev-elastic-job-lite-profile-a-5fc7b6c67d-784sn                   2/2     Running   0          36s
dev-elastic-job-lite-profile-a-5fc7b6c67d-dw9qm                   2/2     Running   0          36s
dev-elastic-job-lite-profile-a-5fc7b6c67d-wdrg8                   2/2     Running   0          35d

部署在服務網格istio中的pod 日誌查看命令

[root@master49 ~]# kubectl logs dev-elastic-job-lite-profile-a-5fc7b6c67d-wdrg8 dev-elastic-job-lite-profile-a
相關文章
相關標籤/搜索