0

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

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

Kubernetes.yaml

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 的服务和部署。

服务

4

1 回答 1

0

您必须标记并将图像推送到 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-05-25T09:47:41.957 回答