kubernetes - 排查 Kubernetes 入口问题
问题描述
我从 Kubernetes 开始,有一些我认为是相当基本的问题。我知道有很多关于 Kubernetes 入口如何工作和呈现底层服务的资源,但我现在需要一些特定于我正在查看的内容的输入,因为我发现很难过滤掉我不知道的内容不需要从我的工作中知道。
我在这里使用 Jenkins helm 图表:https ://github.com/jenkinsci/helm-charts来运行基本的 Jenkins 设置。我正在使用自己的文件覆盖少量值:
controller:
component-name: "jenkins-controller"
customJenkinsLabels:
- "home-lab"
- "jenkins-testing"
ingress:
enabled: true
hostName: "myjenkins.home.com"
paths: []
kubernetes.io/ingress.class: nginx
我在 Windows 10 上的 Minikube 中运行它并启用了入口插件。我可以进入 nginx 入口控制器 pod 内默认容器上的 bash shell,并对 TCP 8080 上的服务和端点各自的 IP 执行 netcat,但入口控制器的日志(使用 kubectl logs -n ingress-nginx ingress 显示-pod-name) 表示“服务没有任何活动的端点”。如果我在我的机器上插入一个主机文件条目,将 myjenkins.home.com 指向入口资源的地址(kubectl get ingress),我在浏览器中点击http://myjenkins.home.com时没有得到响应。当我在本地机器上运行 netstat 时,我也看不到入口控制器的负载均衡器在 TCP 80 上侦听(我认为我应该能够)。
我不是在找人给我所有的答案,但我只是想获得一些关于我的一般故障排除过程的指导,这样我就可以养活自己并真正决定我读到的内容是否相关。为了了解一些我在想的事情,我将列出我想回答的内容:
- 入口是否与端点或服务 IP 通信?
- 入口定义如何决定它使用哪个服务或端点?
- 我是否可以使用 cURL 从我的入口控制器 pod 联系服务或端点(如果相关)?
- 对于这种性质的问题,我应该关注哪些日志?
- 如何最好地查看任何组件的“运行配置”?
- 目前使用 kubectl get blah -o yaml
我知道这不是所有必需的信息,但如果有人愿意提供一些意见,我可以提供更多信息。干杯!
编辑:添加@Lukman 请求的 kubectl 命令的输出
PS C:\> kubectl get pod,deploy,cm,secret,svc -n ingress-nginx
NAME READY STATUS RESTARTS AGE
pod/ingress-nginx-admission-create-zx2jh 0/1 Completed 0 6d18h
pod/ingress-nginx-admission-patch-zdh84 0/1 Completed 0 6d18h
pod/ingress-nginx-controller-5d88495688-2djx5 1/1 Running 2 6d18h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ingress-nginx-controller 1/1 1 1 6d18h
NAME DATA AGE
configmap/ingress-controller-leader-nginx 0 6d18h
configmap/ingress-nginx-controller 1 6d18h
configmap/kube-root-ca.crt 1 6d18h
configmap/tcp-services 0 6d18h
configmap/udp-services 0 6d18h
NAME TYPE DATA AGE
secret/default-token-4459z kubernetes.io/service-account-token 3 6d18h
secret/ingress-nginx-admission Opaque 3 6d18h
secret/ingress-nginx-admission-token-br28x kubernetes.io/service-account-token 3 6d18h
secret/ingress-nginx-token-pz9vq kubernetes.io/service-account-token 3 6d18h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ingress-nginx-controller NodePort 10.103.198.94 <none> 80:32732/TCP,443:30516/TCP 6d18h
service/ingress-nginx-controller-admission ClusterIP 10.96.137.122 <none> 443/TCP 6d18h
解决方案
推荐阅读
- python - 避免在命令行上打印 DEPRECATION msg
- python - 在python中使用open函数
- html - 对选择框使用事件绑定(角度 9)。您可以查看 gif
- python - 是否可以使用 PyPy 和 CPython 结合使用?
- firebase - 我可以为多个用户使用一个 Firebase 身份验证帐户吗?
- javascript - 我应该在哪里存储自动登录 chrome 扩展的密码?
- aws-cdk - 有没有办法动态设置 CDK Stage env 帐户?
- php - Laravel 关系中的记录数
- ruby-on-rails - Ruby:已弃用:如果期望 nil,请使用 assert_nil。这将在 Minitest 6 中失败
- amazon-web-services - AWS TimeStream:超过一天的记录被拒绝