k8s路由不到自己服務的問題

2021-09-26 03:07:43 字數 834 閱讀 9225

在對自己的worker進行垂直擴容之後,原有的pod服務發現訪問不通了

kubectl get no看下機器是否正常

kubectl get ep看所有的service

kubectl get ep -n $ 可以看到endpoint的值

1.首先我們進入到自己的pod裡面,kubectl exec -it $ -n $ /bin/bash

執行訪問的命令, eg: curl -i "http://......"

是否通,如果不通,則看服務的問題,如果通,則看下當前服務的nginx是否起來

ps -ef | grep nginx

如果nginx未起來,則啟動nginx,如果沒有則繼續排查

2.檢視自己的service,kubectl get ep -n $

然後在service執行下請求看是否通過

3.然後在隨便的乙個pod裡面執行命令是否通過

4. 我們通過kubectl get ns

在進入kubecrl get pods -n acs-system

在進入到nginx-ingress的容器裡面

kubectl exec -it $ -n acs-system /bin/bash

cat /etc/nginx/nginx.conf

會發現自己的訪問的網域名稱是否有,並且返回結果是否正確

此時如果沒有,則有可能worker重啟的過程,時鐘沒有同步正確,導致k8s ingress沒有自動的reload所有的服務,解決辦法是

將worker的時鐘同步,ntpdate $

然後kubectl delete pod $ -n $

後面自動拉起就好了

k8s 問題跟進

大多數情況下,問題大多出在pod本身,我們可以按照如下命令進行分析定位問題 kubectl get pod 檢視是否存在不正常的pod kubectl describe pod podname n kube system journalctl u kubelet n 1000 a.txt 檢視kub...

K8S部署DNS服務

root hdss7 11 yum install y bind root hdss7 11 rpm qa bind bind 9.11.4 16.p2.el7 8.6.x86 64 13 listen on port 53 監聽本機ip 14 listen on v6 port 53 刪除,不監聽...

K8S 服務編排YAML

yaml 是一種簡潔的非標記語言。語法格式 在k8s部署乙個應用的yaml內容大致分為兩部分 控制器定義 定義控制器屬性 被控制物件 pod模板,定義容器屬性 具體字段意義 apiversion api版本 kind 資源型別 metadata 資源元資料 spec 資源規格 replicas 副本...