首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停靠容器中的microk8s

停靠容器中的microk8s
EN

Stack Overflow用户
提问于 2020-04-27 23:14:47
回答 2查看 1.4K关注 0票数 0

为了自动测试我的代码,我想在我的docker-compose设置中添加一个microk8s用于测试。因此,我想在docker环境中安装microk8s

我使用web中的以下命令在docker容器中运行了snap

代码语言:javascript
复制
FROM ubuntu:18.04

ENV container docker
ENV PATH /snap/bin:$PATH
ADD snap /usr/local/bin/snap
RUN apt-get update
RUN apt-get install -y snapd squashfuse fuse
RUN systemctl enable snapd
STOPSIGNAL SIGRTMIN+3
CMD [ "/sbin/init" ]

快照脚本

代码语言:javascript
复制
!/bin/sh -e

while ! kill -0 $(pidof snapd) 2>/dev/null; do
  echo "Waiting for snapd to start."
  sleep 1
done

/usr/bin/snap $@

和建筑码头

代码语言:javascript
复制
docker build -t snapd .

然后运行

代码语言:javascript
复制
 docker run --name=snapd -ti -d --tmpfs /run --tmpfs /run/lock --tmpfs /tmp --privileged -v /lib/modules:/lib/modules:ro snapd

到这里为止,一切都很好。

但是,如果尝试通过快照安装microk8s,则会失败

代码语言:javascript
复制
snap install microk8s --classic --channel=1.18/stable
2020-04-27T14:22:39Z INFO Waiting for restart...
error: cannot perform the following tasks:
- Run install hook of "microk8s" snap if present (run hook "install": execv failed: Permission denied)

检查snap systemctl status snapd.service会给我

代码语言:javascript
复制
Apr 27 15:14:32 8985fc7fc5cb snapd[489]: helpers.go:961: cannot retrieve info for snap "microk8s": cannot find installed snap "microk8s" at revision 1341: missing file /sn
ap/microk8s/1341/meta/snap.yaml
Apr 27 15:14:33 8985fc7fc5cb snapd[489]: helpers.go:105: error trying to compare the snap system key: system-key versions not comparable
Apr 27 15:14:33 8985fc7fc5cb snapd[489]: helpers.go:961: cannot retrieve info for snap "microk8s": cannot find installed snap "microk8s" at revision 1341: missing file /sn
ap/microk8s/1341/meta/snap.yaml
Apr 27 15:14:33 8985fc7fc5cb systemd[1]: Started Snappy daemon.
Apr 27 15:15:08 8985fc7fc5cb snapd[489]: handlers.go:495: Reported install problem for "microk8s" as e11fe0c4-8899-11ea-a8e2-fa163ee63de6 OOPSID
EN

回答 2

Stack Overflow用户

发布于 2020-04-28 04:57:08

我找到了一个(对我来说)比较令人满意的答案是使用k3s A German description can be found here

密钥是下面的docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
  server:
    image: rancher/k3s:v0.8.1
    command: server --disable-agent
    environment:
    - K3S_CLUSTER_SECRET=somethingtotallyrandom
    - K3S_KUBECONFIG_OUTPUT=/output/kubeconfig.yaml
    - K3S_KUBECONFIG_MODE=666
    volumes:
    - k3s-server:/var/lib/rancher/k3s
    # get the kubeconfig file
    - .:/output
    ports:
    - 6443:6443

  node:
    image: rancher/k3s:v0.8.1
    tmpfs:
    - /run
    - /var/run
    privileged: true
    environment:
    - K3S_URL=https://server:6443
    - K3S_CLUSTER_SECRET=somethingtotallyrandom
    ports:
      - 31000-32000:31000-32000

  worker:
    image: rancher/k3s:v0.8.1
    tmpfs:
    - /run
    - /var/run
    privileged: true
    environment:
    - K3S_URL=https://server:6443
    - K3S_CLUSTER_SECRET=somethingtotallyrandom

volumes:
  k3s-server: {}
票数 1
EN

Stack Overflow用户

发布于 2020-04-27 23:22:16

(只是为了完整,但我不接受这个答案,如果是的话,这是我自己的,但@David Maze建议)你可以在Docker中使用kind Kubernetes。它主要是为了测试docker本身而开发的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61462119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档