我有一个裸机kubernetes集群。我应用了这样的kubernetes nginx部署:kubectl应用-fhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yaml
并添加了这个入口资源:
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
spec:
externalTrafficPolicy: Local
selector:
app: ingress-nginx
name: ingress-nginx
type: NodePort
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
我的入口资源:
apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
rules:
- host: ** master hostname **
http:
paths:
- path: /rest/endpoints/hello
backend:
serviceName: microservices-service
servicePort: 8085
- path: /rest/endpoints/calculateIterationTotalCapcity
backend:
serviceName: microservices-service
servicePort: 8085
但我仍然无法在80号端口找到我的主人,你能帮忙吗?提前感谢。
由于您使用NodePort
类型服务来公开nginx入口控制器,Kuberneretes将在30000-32767
之间分配一个端口,您需要使用该端口进行访问。
但是如果你想在主节点上使用端口80
访问它,那么你需要通过主机网络部署nginx入口控制器
这可以通过在nginx入口控制器pods的规范中启用host Network
选项来实现,方法是编辑nginx入口控制器的现有部署或更改yaml并应用它。
template:
spec:
hostNetwork: true
完成此操作后,您应该使用curl访问微服务
从所附信息中,我们可以看出,您的服务定义不正确,原因如下:
selector:
app: ingress-nginx
正如您在使用NodePort的裸机安装的原始服务定义中所看到的,它应该如下所示:
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
注:
服务资源——在Kubernetes中,服务是一种抽象,它定义了一组逻辑单元和访问它们的策略(有时这种模式被称为微服务)。服务所针对的pod集通常由选择器决定
在这种情况下,您的服务可能没有合适的endpoint,所以我的建议是根据官方文档重新部署您的nginx-ingress控制器。
根据您的需要,您可以将控制器暴露在以下位置:
注:
启用此选项会将每个系统守护进程暴露给任何网络接口上的NGINX入口控制器,包括主机的回环。请仔细评估这对您系统安全性的影响。
一旦您的入口控制器正常工作,您就可以执行以下操作:
注:
警告: 如果将多个 IngressClass 标记为群集的默认对象,则准入控制器会阻止创建未指定 IngressClassName 的新 Ingress 对象。您可以通过确保在集群中最多将 1 个入口类标记为默认值来解决此问题
随着库伯内特斯集群的启动和运行,并且能够通过ssh键访问master并在那里运行kubectl命令;我想在我的本地机器上运行kubectl命令。所以我尝试按照kubectl配置设置配置: 激活上下文: 当我运行kubectl命令时: 它返回: 与服务器localhost:8080的连接被拒绝-是否指定了正确的主机或端口?
null NewJenkins.Values具有以下特性。 报告的错误是。 我在谷歌上搜索了一段时间,很多网站都提到了服务帐户设置,但没有任何工作。 还有别的步骤吗?
当我试图运行dataloader时。py我得到了以下导入错误。我逐行尝试代码,发现在将tensorlayer导入为t1时出现了此错误。 ModuleNotFoundError:没有名为'numpy.core._multiarray_umath'的模块重要错误:numpy.core.multiarray导入失败 上述异常是以下异常的直接原因: Traceback(最近的调用最后):文件”
我试图在我本地minikube集群上的一个简单示例中使用fabric8io/kubernetes-client,在这里我获得了一个pod的IP 是完成执行的pod的名称,如果执行则可见。 是一个kubernetes API主机,我从中获得该主机。 MiniKube只有1个节点。 Fabric8IO/Kubernetes-客户端版本为4.9.1 Java 11 我将此代码作为作业部署在的同一集群上。
我为数据类创建了一个var扩展属性,如下所示: 但是,当我尝试将“Val”重新分配给此行中的新值时,编译器会抱怨“Val无法重新分配”: 我真的不明白为什么会这样??我有一个“var”位图属性而不是“val”,那么问题是什么?更重要的是,什么是解决方案或替代方案?
我将JAVA\u HOME变量设置为follow path:/usr/lib/jvm/jdk11,当我放置以下命令:JAVA-version时,它显示当前版本,echo$JAVA\u HOME指示上述路径。当我启动tomcat时,会出现以下错误消息:既没有定义JAVA\u HOME,也没有定义JRE\u HOME变量。 我把一切都设置好了,但是公猫找不到它。