ingress-nginx安装有俩个job分别干嘛的
Ingress-Nginx 安装有两个Job,它们的作用如下:
ingress-nginx-admission-create-g5sfq
和ingress-nginx-admission-patch-tzv5x
这两个Job可能是用于Nginx Ingress Controller的自动批准和自适应策略(Admission Control)的。这两个Job可能包含了创建和更新Ingress资源时所需的验证或配置修改操作。它们不是直接运行Nginx服务的,而是支持Ingress资源的管理和审核流程。ingress-nginx-controller-5575c6cd9d-7b8zt
是负责实际HTTP负载均衡和路由转发的Pod。它加载并应用Nginx配置文件,监听特定的端口,接收外部的HTTP请求,并根据配置将这些请求转发至相应的后端服务(如mynginx-service
)。
要深入了解它们的工作原理,你可以执行命令查看这些Job的状态和日志,以确认它们的具体任务和执行情况。例如:
kubectl describe job ingress-nginx-admission-create-g5sfq -n ingress-nginx
kubectl logs ingress-nginx-admission-create-g5sfq -n ingress-nginx
以及同样对于ingress-nginx-controller-5575c6cd9d-7b8zt
Pod。
apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: controller app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx app.kubernetes.io/version: 1.6.4 name: ingress-nginx-controller namespace: ingress-nginx spec: externalTrafficPolicy: Local ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - appProtocol: http name: http port: 80 protocol: TCP targetPort: http - appProtocol: https name: https port: 443 protocol: TCP targetPort: https selector: app.kubernetes.io/component: controller app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/name: ingress-nginx type: NodePort 指定targetPort
在上述配置中,targetPort 是用来指定 Service 要代理的后端 Pod 的端口号。在这个例子中,Service 会将请求代理到后端 Pod 的 80 端口(targetPort: http)或 443 端口(targetPort: https)。这里的 targetPort 要与后端 Pod 中监听的端口一致,如果不一致,请求就无法到达后端 Pod。
ingress-nginx 安装
安装 Ingress-Nginx 控制器
为了在 Kubernetes 集群上安装 Ingress Nginx 控制器,官方提供了详细的指导说明[^1]。通常情况下,推荐的方法是通过 Helm 或者直接应用 YAML 文件来进行部署。
使用 Helm 进行安装
Helm 是一种用于管理 Kubernetes 应用程序的包管理工具。对于希望简化安装过程并能灵活定制参数的人来说,这是一个理想的选择。
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx
以上命令会添加 ingress-nginx 的 Helm 仓库到本地配置中,并更新可用图表列表,最后执行实际的安装操作。
直接应用 YAML 文件
如果偏好不依赖额外工具,则可以直接下载预构建好的清单文件并通过 kubectl apply
命令来完成部署:
kubectl create namespace ingress-nginx
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.7.0/deploy/static/provider/cloud/deploy.yaml
这段脚本创建了一个名为 ingress-nginx
的命名空间,并从中获取最新的稳定版本 YAML 清单文件进行了资源定义的应用。
自定义安装选项
有时可能需要调整默认设置以适应特定环境需求。这可以通过修改所提供的模板或是在使用 Helm 安装时传递自定义值来实现。例如指定负载均衡服务类型、节点端口范围等高级特性都可以在此阶段进行配置[^2]。
测试安装成功与否
一旦完成了上述任一方式的操作之后,应该验证新组件是否正常工作。最简单的方式就是查看 Pod 和 Service 资源的状态:
kubectl get all -n ingress-nginx
这条指令能够展示出所有属于该命名空间下的对象概览,包括但不限于 Pods, Services 等重要组成部分的信息[^3]。
相关推荐












