为了进行一些测试,我在我的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入口控制器端口的?
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
我部署的相关部分如下所示:
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的子部分,但是当我推出更改时,将再次添加。
现在我的服务不能再通过入口获得了。
发布于 2021-03-15 06:37:17
请注意,minikube附带了副业经理,它的作用是监视特定的addon模板文件(默认位置:/etc/kubernetes/addons/
),并根据托管资源的标签值执行两个特定操作之一:
AddonManager.kubernetes.io/模式
addonmanager.kubernetes.io/mode=Reconcile
会定期和解。不鼓励通过apiserver直接操作这些加载项,因为addon管理器将使它们回到原来的状态。特别是
addonmanager.kubernetes.io/mode=KeepOnly
只会被检查是否存在。用户可以随意编辑这些加载项。
因此,为了保持您定制版本的默认侵入服务侦听端口,请首先将入口部署模板配置更改为minikube上的KeepOnly
。
发布于 2019-09-16 02: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的相对资源之前,可能需要一些修改。
发布于 2020-05-07 23:57:14
好的,我认为您必须修改Ingress,它引用了您试图在自定义端口上公开的服务。
这可以通过自定义注释来完成。下面是端口444的一个示例:
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
https://stackoverflow.com/questions/57926545
复制相似问题