当前位置: 首页 > 知识库问答 >
问题:

如何在裸机安装上外部访问kubernetes服务

郎刚捷
2023-03-14

我尝试做的一个例子可以在这里找到,但它使用的是GCE。

谢谢

共有1个答案

曹景铄
2023-03-14

创建一个具有nodeport类型的服务,该服务可以侦听每个节点上的TCP/UDP端口30000-32767。默认情况下,您不能简单地选择在节点的端口80上公开服务。

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: {SERVICE_PORT}
    targetPort: {POD_PORT}
    nodePort: 31000
  - portocol: UDP
    port: {SERVICE_PORT}
    targetPort: {POD_PORT}
    nodePort: 32000
  type: NodePort

容器映像gcr.io/google_containers/proxy-to-service:v2是一个非常小的容器,可以为您执行端口转发。您可以使用它将pod端口或主机端口转发到服务。吊舱可以选择任何端口或主机端口,并且不像服务那样受到限制。

apiVersion: v1
kind: Pod
metadata:
  name: dns-proxy
spec:
  containers:
  - name: proxy-udp
    image: gcr.io/google_containers/proxy-to-service:v2
    args: [ "udp", "53", "kube-dns.default", "1" ]
    ports:
    - name: udp
      protocol: UDP
      containerPort: 53
      hostPort: 53
  - name: proxy-tcp
    image: gcr.io/google_containers/proxy-to-service:v2
    args: [ "tcp", "53", "kube-dns.default" ]
    ports:
    - name: tcp
      protocol: TCP
      containerPort: 53
      hostPort: 53

如果有多个服务与不同的主机/路径共享相同的TCP端口,则部署NGINX入口控制器,该控制器监听HTTP 80和HTTPS 443。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        backend:
          serviceName: test
          servicePort: 80
 类似资料:
  • 我在Kubernetes集群中配置了Keycloak(10.0.3)服务器。 问题是,当我试图访问我的web应用程序时,它总是重定向到'http://keycloak-cluster-http.keycloak-cluster.svc.cluster.local/auth/realms/myrealm',这在K8S之外无法解决。 如果我将issuiser-uri更改为http://keycloak

  • 前面几节讲到如何访问kubneretes集群,本文主要讲解访问kubenretes中的Pod和Serivce的几种方式,包括如下几种: hostNetwork hostPort NodePort LoadBalancer Ingress 说是暴露Pod其实跟暴露Service是一回事,因为Pod就是Service的backend。 hostNetwork: true 这是一种直接定义Pod网络的方

  • 我正在尝试在minikube(Windows-10)上部署简单的spring boot REST服务。下面是我的配置 Docker文件 docker image运行良好,我能够运行该应用程序。 部署 服务 我无法使用< code > service-IP:node port/Uri < br > http://127 . 0 . 0 . 1:30008/hello访问restendpoint ht

  • 我正在尝试使用三个虚拟机(Master–10.x.x.4、Node1–10.x.x.150、Node2–10.x.x.160)创建Kubernetes集群。 我能够通过此链接成功创建留言簿应用程序:http://kubernetes.io/v1.0/examples/guestbook/.我只对frontend-service.yaml做了一个更改:使用NodePort。我可以使用节点IP和端口号

  • 我正在运行一个kubernetes集群,它由三个节点组成,工作出色,但现在是时候让我的Web应用程序安全了,所以我部署了一个入口控制器(traefik)。但是我找不到在上面设置https的说明。我知道我必须做的大部分事情,比如设置“秘密”(带有证书的容器)等,但我想知道如何配置我的入口控制器和与之相关的所有文件,以便我能够使用安全连接 我已经配置了入口控制器,并创建了一些前端和后端。此外,我还配置

  • 我无法从外部访问我的服务。首先,这里是我的conf yaml文件: nginx-pod.yaml nginx-service.yaml metallb-config.yaml 然后我创建了集群。命令 打印: 一切正常,而且< code > ku bectl describe service/nginx-service 打印: curl命令在主服务器打印。接下来我试图从另一个网络打开,它不起作用,但