无法通过互联网访问我的本地kubernetes服务

伊吉

实施目标

将运行在kubernetes上的Zookeeper实例公开到互联网。

(底部提供了配置和版本信息)

实施尝试

我目前有一个minikube容器ubuntu 14.04支持下运行群集docker我正在运行一个裸机k8s集群,并且试图将Zookeeper服务公开到互联网鉴于我的集群未在云提供商上运行,我设置metallb,以便为我的zookeeper服务提供网络负载均衡器实现。

启动时,一切看起来都很好,分配了一个外部IP,我可以通过curl命令从同一主机访问它。

$ kubectl get pods -n metallb-system
NAME                          READY   STATUS    RESTARTS   AGE
controller-5c9894b5cd-9gh8m   1/1     Running   0          5h59m
speaker-j2z8q                 1/1     Running   0          5h59m


$ kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                         AGE
kubernetes   ClusterIP      10.xxx.xxx.xxx  <none>          443/TCP                         6d19h
zk-cs        LoadBalancer   10.xxx.xxx.xxx  172.1.1.x       2181:30035/TCP                  56m
zk-hs        LoadBalancer   10.xxx.xxx.xxx  172.1.1.x       2888:30664/TCP,3888:31113/TCP   6m15s

当我卷曲上述外部IP时,我得到一个有效的响应

$ curl -D- "http://172.1.1.x:2181"
curl: (52) Empty reply from server

到目前为止,一切看起来都不错,我可以从集群外部访问LB没问题,但这就是我缺乏Kubernetes /网络知识的地方,我发现无法将此LB暴露给互联网。我曾尝试minikube tunnel过寄予厚望的跑步,但对此却深感失望。

在minikube隧道正在运行时,从另一个节点运行curl命令只会看到请求超时。

$ curl -D- "http://172.1.1.x:2181"
curl: (28) Failed to connect to 172.1.1.x port 2181: Timed out

在这一点上,正如我之前提到的,我陷入了困境。有什么办法,我能得到这个服务公开到互联网,而不让我的灵魂AWS还是GCP

任何帮助将不胜感激。

服务配置

apiVersion: v1
kind: Service
metadata:
  name: zk-hs
  labels:
    app: zk
spec:
  selector:
    app: zk
  ports:
    - port: 2888
      targetPort: 2888
      name: server
      protocol: TCP
    - port: 3888
      targetPort: 3888
      name: leader-election
      protocol: TCP
  clusterIP: ""
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: zk-cs
  labels:
    app: zk
spec:
  selector:
    app: zk
  ports:
    - name: client
      protocol: TCP
      port: 2181
      targetPort: 2181
  type: LoadBalancer
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: zk-pdb
spec:
  selector:
    matchLabels:
      app: zk
  maxUnavailable: 1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: zk
spec:
  selector:
    matchLabels:
      app: zk
  serviceName: zk-hs
  replicas: 1
  updateStrategy:
    type: RollingUpdate
  podManagementPolicy: OrderedReady
  template:
    metadata:
      labels:
        app: zk
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                      - zk
              topologyKey: "kubernetes.io/hostname"
      containers:
        - name: zookeeper
          imagePullPolicy: Always
          image: "library/zookeeper:3.6"
          resources:
            requests:
              memory: "1Gi"
              cpu: "0.5"
          ports:
            - containerPort: 2181
              name: client
            - containerPort: 2888
              name: server
            - containerPort: 3888
              name: leader-election
          volumeMounts:
            - name: datadir
              mountPath: /var/lib/zookeeper
            - name: zoo-config
              mountPath: /conf
      volumes:
        - name: zoo-config
          configMap:
            name: zoo-config
      securityContext:
        fsGroup: 2000
        runAsUser: 1000
        runAsNonRoot: true
  volumeClaimTemplates:
    - metadata:
        name: datadir
      spec:
        accessModes: [ "ReadWriteOnce" ]
        resources:
          requests:
            storage: 10Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: zoo-config
  namespace: default
data:
  zoo.cfg: |
    tickTime=10000
    dataDir=/var/lib/zookeeper
    clientPort=2181
    initLimit=10
    syncLimit=4
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 172.1.1.1-172.1.1.10

minikube:v1.13.1
码头工人:18.06.3-ce

加布里埃尔·丹塔斯(Gabriel Dantas)

您可以使用minikube做到这一点,但是minikube的想法只是在您的本地环境中测试东西。因此,默认情况下,它没有正确的IPTable权限,是的,您可以调整它,但是如果您的目标是仅在没有任何响亮的提供程序的情况下使用,那么我建议您使用kubeadmhttps://kubernetes.io / docs / setup / production-environment / tools / kubeadm / create-cluster-kubeadm /)。

该工具将为您提供非常可定制的群集配置,并且您可以轻松设置网络问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过互联网访问我的Express Node.js服务器?

来自分类Dev

无法通过互联网访问 OpenVPN 服务器

来自分类Dev

我无法从互联网访问我在“ Apache24”首页中托管的网站

来自分类Dev

无法通过互联网访问apache

来自分类Dev

无法通过OpenVPN访问互联网

来自分类Dev

Windows 8.1应用程序无法访问我的互联网

来自分类Dev

Ubuntu服务器无法访问互联网

来自分类Dev

除我的家庭WiFi外,无法通过WiFi访问互联网!

来自分类Dev

无法通过互联网访问Rasperberry Pi

来自分类Dev

是什么导致我的服务器无法通过互联网联系?

来自分类Dev

我无法让Docker容器访问互联网吗?

来自分类Dev

我无法让Docker容器访问互联网吗?

来自分类Dev

WebDAV或SFTP可以从互联网访问我的Cynology NAS?

来自分类Dev

如何防止互联网访问我网络上的一组计算机?

来自分类Dev

如何通过互联网或局域网(而不是本地主机)访问聚合物服务?

来自分类Dev

如何通过互联网访问WAMP?

来自分类Dev

通过代理访问互联网

来自分类Dev

通过互联网访问树莓桌面

来自分类Dev

Ubuntu Server可以访问互联网,但是我无法在本地网络上连接到它

来自分类Dev

Ubuntu Server可以访问互联网,但是我无法在本地网络上连接到它

来自分类Dev

突然无法访问互联网

来自分类Dev

突然无法访问互联网

来自分类Dev

无法在Vmware上访问互联网

来自分类Dev

无法再访问互联网

来自分类Dev

如何设置我可以通过调制解调器呼叫的服务器以访问互联网?

来自分类Dev

无法通过互联网对自己隐瞒?

来自分类Dev

ssh反向隧道从互联网访问本地Web服务器

来自分类Dev

通过互联网从本地服务器连接到Android

来自分类Dev

fedora:从本地安装软件包,无法访问互联网

Related 相关文章

  1. 1

    如何通过互联网访问我的Express Node.js服务器?

  2. 2

    无法通过互联网访问 OpenVPN 服务器

  3. 3

    我无法从互联网访问我在“ Apache24”首页中托管的网站

  4. 4

    无法通过互联网访问apache

  5. 5

    无法通过OpenVPN访问互联网

  6. 6

    Windows 8.1应用程序无法访问我的互联网

  7. 7

    Ubuntu服务器无法访问互联网

  8. 8

    除我的家庭WiFi外,无法通过WiFi访问互联网!

  9. 9

    无法通过互联网访问Rasperberry Pi

  10. 10

    是什么导致我的服务器无法通过互联网联系?

  11. 11

    我无法让Docker容器访问互联网吗?

  12. 12

    我无法让Docker容器访问互联网吗?

  13. 13

    WebDAV或SFTP可以从互联网访问我的Cynology NAS?

  14. 14

    如何防止互联网访问我网络上的一组计算机?

  15. 15

    如何通过互联网或局域网(而不是本地主机)访问聚合物服务?

  16. 16

    如何通过互联网访问WAMP?

  17. 17

    通过代理访问互联网

  18. 18

    通过互联网访问树莓桌面

  19. 19

    Ubuntu Server可以访问互联网,但是我无法在本地网络上连接到它

  20. 20

    Ubuntu Server可以访问互联网,但是我无法在本地网络上连接到它

  21. 21

    突然无法访问互联网

  22. 22

    突然无法访问互联网

  23. 23

    无法在Vmware上访问互联网

  24. 24

    无法再访问互联网

  25. 25

    如何设置我可以通过调制解调器呼叫的服务器以访问互联网?

  26. 26

    无法通过互联网对自己隐瞒?

  27. 27

    ssh反向隧道从互联网访问本地Web服务器

  28. 28

    通过互联网从本地服务器连接到Android

  29. 29

    fedora:从本地安装软件包,无法访问互联网

热门标签

归档