首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >更改Kubernetes nginx入口-控制器端口

更改Kubernetes nginx入口-控制器端口
EN

Stack Overflow用户
提问于 2019-09-13 15:35:03
回答 3查看 5.8K关注 0票数 4

为了进行一些测试,我在我的RedHat EC2实例上安装了Minikubev1.3.1。

,因为默认情况下nginx入口控制器使用的端口已经在使用中,所以我试图在部署中更改它们,但没有结果。请有人指点一下怎么做好吗?

我怎么知道端口已经在使用了?

当我使用命令kubectl -n kube-system get deployment | grep nginx列出系统荚时,我得到:

nginx-入口控制器0/1 1 0 9d

意味着我的容器没有打开。当我使用命令kubectl -n kube-system describe pod nginx-ingress-controller-xxxxx描述它时,我得到:

类型原因年龄 讯息?

然后,我使用这些端口检查进程,然后杀死它们。这样才能释放他们,入口控制器吊舱就能被正确的部署。

我是怎么改变nginx入口控制器端口的?

代码语言:javascript
代码运行次数:0
运行
复制
kubectl -n kube-system get deployment | grep nginx

> NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
> nginx-ingress-controller   0/1     1            0           9d

kubectl -n kube-system edit deployment nginx-ingress-controller

我部署的相关部分如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
name: nginx-ingress-controller
        ports:
        - containerPort: 80
          hostPort: 80
          protocol: TCP
        - containerPort: 443
          hostPort: 443
          protocol: TCP
        - containerPort: 81
          hostPort: 81
          protocol: TCP
        - containerPort: 444
          hostPort: 444
          protocol: TCP
        - containerPort: 18080
          hostPort: 18080
          protocol: TCP

然后删除端口443和80的子部分,但是当我推出更改时,将再次添加

现在我的服务不能再通过入口获得了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-15 14:37:17

请注意,minikube附带了副业经理,它的作用是监视特定的addon模板文件(默认位置:/etc/kubernetes/addons/),并根据托管资源的标签值执行两个特定操作之一:

AddonManager.kubernetes.io/模式

  1. addonmanager.kubernetes.io/mode=Reconcile

会定期和解。不鼓励通过apiserver直接操作这些加载项,因为addon管理器将使它们回到原来的状态。特别是

  1. addonmanager.kubernetes.io/mode=KeepOnly

只会被检查是否存在。用户可以随意编辑这些加载项。

因此,为了保持您定制版本的默认侵入服务侦听端口,请首先将入口部署模板配置更改为minikube上的KeepOnly

票数 1
EN

Stack Overflow用户

发布于 2019-09-16 10:25:53

基本上,minikube引导Nginx 入口控制器作为单独的加载项,因此按照设计,您可能必须启用它,以便在minikube集群中传播特定的minikube控制器的资源。

一旦启用了一些特定的minikube 副词副业经理就会为每个组件创建模板文件,方法是将它们放置到主机上的/etc/kubernetes/addons/文件夹中,然后旋转每个清单文件,创建相应的K8s资源;此外,addon管理器不断检查同步K8s目标资源(服务、部署等)的所有addon资源的实际状态。根据模板数据。

因此,您可以考虑在ingress-*.yaml目录下的整个/etc/kubernetes/addons/文件中修改/etc/kubernetes/addons/ addon模板数据,将所需的值传播到目标k8s对象中;在K8s引擎反映更改并重新生成基于ReplicaSet的相对资源之前,可能需要一些修改。

票数 0
EN

Stack Overflow用户

发布于 2020-05-08 07:57:14

好的,我认为您必须修改Ingress,它引用了您试图在自定义端口上公开的服务。

这可以通过自定义注释来完成。下面是端口444的一个示例:

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myservice
  namespace: mynamespace
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.org/listen-ports-ssl: "444"

spec:
  tls:
  - hosts:
    - host.org
    secretName: my-host-tls-cert
  rules:
  - host: host.org
    http:
      paths:
      - path: /
        backend:
          serviceName: my-service
          servicePort: 444
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57926545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档