zoukankan      html  css  js  c++  java
  • Firecracker + Kata +运行

    https://qiita.com/hogehoge789/items/cfe004351273b94b59b2

    https://github.com/kata-containers/documentation/blob/master/install/docker/ubuntu-docker-install.md

    $ sudo -E apt-get -y install apt-transport-https ca-certificates software-properties-common
    $ curl -sL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    $ arch=$(dpkg --print-architecture)
    $ sudo -E add-apt-repository "deb [arch=${arch}] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    $ sudo -E apt-get update
    $ sudo -E apt-get -y install docker-ce
    root@ubuntu:~# dpkg -l | grep docker
    ii  docker-ce                            5:19.03.13~3-0~ubuntu-bionic           arm64        Docker: the open-source application container engine
    ii  docker-ce-cli 

    Quick Start - Docker

    Get the static binaries

    The static binaries are posted on our release page, and 1.5.0 can be obtained as follows:

    wget https://github.com/kata-containers/runtime/releases/download/1.5.0/kata-static-1.5.0-x86_64.tar.xz
    

    The tarball is designed to be decompressed into /, placing all of the files within /opt/kata/. The runtime configuration is expected to land at /opt/kata/share/defaults/kata-containers/configuration.toml. Your mileage will vary if you make further changes. To install Kata on your system:

    sudo tar -xvf kata-static-1.5.0-x86_64.tar.xz -C /
    1. Install the latest version of Docker with the following commands:

      Notes:

      $ sudo -E apt-get -y install apt-transport-https ca-certificates software-properties-common
      $ curl -sL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
      $ arch=$(dpkg --print-architecture)
      $ sudo -E add-apt-repository "deb [arch=${arch}] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
      $ sudo -E apt-get update
      $ sudo -E apt-get -y install docker-ce

      For more information on installing Docker please refer to the Docker Guide.

    2. Configure Docker to use Kata Containers by default with ONE of the following methods:

      1. systemd (this is the default and is applied automatically if you select the automatic installation option)

        $ sudo mkdir -p /etc/systemd/system/docker.service.d/
        $ cat <<EOF | sudo tee /etc/systemd/system/docker.service.d/kata-containers.conf
        [Service]
        ExecStart=
        ExecStart=/usr/bin/dockerd -D --add-runtime kata-runtime=/usr/bin/kata-runtime --default-runtime=kata-runtime
        EOF
      2. Docker daemon.json

        Create docker configuration folder.

        $ sudo mkdir -p /etc/docker
        

        Add the following definitions to /etc/docker/daemon.json:

        {
          "default-runtime": "kata-runtime",
          "runtimes": {
            "kata-runtime": {
              "path": "/usr/bin/kata-runtime"
            }
          }
        }
    3. Restart the Docker systemd service with the following commands:

      $ sudo systemctl daemon-reload
      $ sudo systemctl restart docker


      root@ubuntu:~# systemctl restart docker
      Job for docker.service failed because the control process exited with error code.
      See "systemctl status docker.service" and "journalctl -xe" for details.
      root@ubuntu:~# systemctl status docker.service
      ● docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
        Drop-In: /etc/systemd/system/docker.service.d
                 └─kata-containers.conf
         Active: failed (Result: exit-code) since Tue 2020-09-29 14:38:26 HKT; 16s ago
           Docs: https://docs.docker.com
        Process: 19324 ExecStart=/usr/bin/dockerd -D --add-runtime kata-runtime=/usr/bin/kata-runtime --default-runtime=
       Main PID: 19324 (code=exited, status=1/FAILURE)
      
      Sep 29 14:38:26 ubuntu systemd[1]: docker.service: Service hold-off time over, scheduling restart.
      Sep 29 14:38:26 ubuntu systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
      Sep 29 14:38:26 ubuntu systemd[1]: Stopped Docker Application Container Engine.
      Sep 29 14:38:26 ubuntu systemd[1]: docker.service: Start request repeated too quickly.
      Sep 29 14:38:26 ubuntu systemd[1]: docker.service: Failed with result 'exit-code'.
      Sep 29 14:38:26 ubuntu systemd[1]: Failed to start Docker Application Container Engine.
      lines 1-15/15 (END)
      root@ubuntu:~# /usr/bin/dockerd -D --add-runtime kata-runtime=/usr/bin/kata-runtime --default-runtime=kata-runtime
      unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: default-runtime: (from flag: kata-runtime, from file: kata-runtime)
      root@ubuntu:~# 
      安装kata

      root@ubuntu:/opt/gopath/src/github.com# kata-runtime kata-check
      System is capable of running Kata Containers
      System can currently create Kata Containers
      root@ubuntu:/opt/gopath/src/github.com# 

       删掉

      daemon.json.bak
      mv   /etc/docker/daemon.json /etc/docker/daemon.json.bak

      保留

       systemctl daemon-reload

      docker.service.d
      vi /etc/systemd/system/docker.service.d





    4. Run Kata Containers

      You are now ready to run Kata Containers:

      $ sudo docker run busybox uname -a

      The previous command shows details of the kernel version running inside the container, which is different to the host kernel version.

    docker run --rm -it --runtime kata-runtime busybox uname -r
    docker: Error response from daemon: OCI runtime create failed: Failed to check if grpc server is working: rpc error: code = Unavailable desc = transport is closing: unknown.
    root@ubuntu:/home/ubuntu# docker run --rm -it --runtime kata-runtime busybox uname -r
    docker: Error response from daemon: OCI runtime create failed: Failed to check if grpc server is working: rpc error: code = Unavailable desc = transport is closing: unknown.
    root@ubuntu:/home/ubuntu# kata-collect-data.sh > /tmp/kata-collect-data.log
    root@ubuntu:/home/ubuntu# 
    root@ubuntu:~# kata-runtime kata-env | grep debug
    root@ubuntu:~# kata-runtime kata-env | grep -i debug
      Debug = false
      Debug = false
      Debug = false
      Debug = false
      Debug = false
      Debug = false
    root@ubuntu:~# 
    root@ubuntu:/opt/gopath/src/github.com/kata-containers/osbuilder/rootfs-builder# ls /usr/share/kata-containers/kata-containers-initrd.img
    /usr/share/kata-containers/kata-containers-initrd.img
    root@ubuntu:/opt/gopath/src/github.com/kata-containers/osbuilder/rootfs-builder# ls /usr/share/kata-containers/kata-containers.img
    /usr/share/kata-containers/kata-containers.img
    root@ubuntu:/opt/gopath/src/github.com/kata-containers/osbuilder/rootfs-builder# docker run --rm -it --runtime kata-runtime busybox uname -r
    docker: Error response from daemon: OCI runtime create failed: /usr/share/defaults/kata-containers/configuration-qemu.toml: file /usr/share/kata-containers/vmlinuz.container does not exist: unknown.
    root@ubuntu:/opt/gopath/src/github.com/kata-containers/osbuilder/rootfs-builder# vi /usr/share/defaults/kata-containers/configuration.toml
    mv kata-containers.img  vmlinuz.container
    root@ubuntu:/opt/gopath/src/github.com/kata-containers/osbuilder/rootfs-builder# docker run --rm -it --runtime kata-runtime busybox uname -r
    docker: Error response from daemon: OCI runtime create failed: failed to launch qemu: exit status 1, error messages from qemu log: rom: requested regions overlap (rom /usr/share/kata-containers/kata-containers-initrd.img. free=0x000000004b080000, addr=0x0000000048000000)
    qemu-system-aarch64: rom check and register reset failed: unknown.
    kata romfile=: 'pcie-pci-bridge' is not a valid device model name

    https://github.com/kata-containers/kata-containers/issues/28

    https://my.oschina.net/u/4284509/blog/3933348

    具体安装步骤为:

    1.进入qemu源码目录

    执行./configure --enable-virtfs,这里是为了开启虚拟文件系统,如果不添加这个参数.在运行docker启动kata-container时,会报'virtio-9p-pci' is not a valid device model name: unknown的错误

    2.执行make&&sudo make install

    3.将/usr/local/bin/qemu-system-x86_64拷贝为/usr/bin/qemu-lite-system-x86_64

    Kata-container 环境搭建手顺

    apt-get -y install  libcap-ng-dev 

    root@ubuntu:/opt/gopath/src/github.com/kata-containers/osbuilder/initrd-builder# docker run --rm -it --runtime kata-runtime busybox uname -r
    docker: Error response from daemon: OCI runtime create failed: failed to launch qemu: exit status 1, error messages from qemu log: qemu-system-aarch64: Property '.pmu' not found: unknown.

    docker run --rm -it --runtime kata-runtime busybox uname -r
    docker: Error response from daemon: OCI runtime create failed: failed to launch qemu: exit status 1, error messages from qemu log: qemu-system-aarch64: -device pcie-pci-bridge,bus=pcie.0,id=pcie-bridge-0,addr=2,romfile=: 'pcie-pci-bridge' is not a valid device model name: unknown.

    root@ubuntu:~/kata/qemu/build# kata-runtime --version
    kata-runtime  : 1.12.0-alpha1
       commit   : 011c73f24a94118c74a1833fb2f27da0eaf3b576
       OCI specs: 1.0.1-dev
    root@ubuntu:~/kata/qemu/build#

    kata配置

    root@ubuntu:~# kata-runtime --kata-show-default-config-paths
    /etc/kata-containers/configuration.toml
    /usr/share/defaults/kata-containers/configuration.toml
    root@ubuntu:~# cat /etc/kata-containers/configuration.toml

  • 相关阅读:
    事务
    数据库三大范式
    jdbc
    Jdbc事务
    Android 学习笔记2开发软件的常识&搭建开发环境(windows7)
    2011年起航
    Android 学习笔记3Android 工程目录介绍&程序执行过程
    我的第一篇日志基于AT89S52的单片机的LED点阵显示屏的设计
    算法基础之快速排序
    LeetCode88.合并两个有序数组
  • 原文地址:https://www.cnblogs.com/dream397/p/13749340.html
Copyright © 2011-2022 走看看