【问题标题】:kubernetes microk8s nodeport not found未找到 kubernetes microk8s 节点端口
【发布时间】:2020-09-09 16:56:38
【问题描述】:

我在http://127.0.0.1:3000/ 的 docker 上运行 express 应用程序

我正在尝试从http://127.0.0.1:30002/ 的 microk8s 服务访问它,但没有找到。这是我的 kubernetes 部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: simple-node
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      simple: node
  template:
    metadata:
      labels:
        simple: node
    spec:
      containers:
        - name: simple-node
          image: simple-node:1.0
---
apiVersion: v1
kind: Service
metadata:
  name: simple-node
  namespace: default
spec:
  type: NodePort
  selector:
    simple: node
  ports:
    - port: 3000
      targetPort: 3000
      nodePort: 30002

这是我在 microk8s 的服务和部署。

【问题讨论】:

  • 您似乎附上了 Kubernetes YAML 文件的屏幕截图,而不是包含文件的实际内容。你能用纯文本的 YAML 文件替换图像吗?对于您的终端输出也是如此。
  • @DavidMaze 已编辑
  • 您的 k8s 集群无法访问图像 simple-node,请将图像推送到注册表,然后将该图像链接放在那里。
  • 这里是如何使用本地注册表microk8s.io/docs/registry-built-in

标签: docker kubernetes microk8s


【解决方案1】:

您必须标记并将图像推送到 docker 注册表。 MicroK8s 使用的 containerd 守护进程被配置为信任这个不安全的注册表。要上传图片,我们必须标记 simple-node 推送之前。

您可以使用以下方式安装注册表:

microk8s enable registry

执行以下命令:

$ docker build . 
$ docker tag aaabbccc simple-node:1.0
$ docker push simple-node:1.0

在某些版本的 Docker 中,推送到这个不安全的注册表可能会失败,除非守护程序被明确配置为信任这个注册表。要解决此问题,您需要编辑 /etc/docker/daemon.json 并添加:

{
  "insecure-registries" : ["localhost:32000"]
}

然后重新启动 Docker 以加载新配置。

$ sudo systemctl restart docker

看看:registry-built-in.

【讨论】:

    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 2020-09-25
    • 2021-04-18
    • 1970-01-01
    • 2021-11-17
    • 2021-04-26
    • 2021-01-18
    • 2018-07-16
    相关资源
    最近更新 更多