CoreOS coreos-assembler文档
荣涛 2021年11月24日

文档修改日志

日期 修改内容 修改人 备注
2021年11月24日 创建FCOS 荣涛
2021年11月25日 cosa命令行 荣涛
2021年11月29日 buildextend 荣涛
2021年12月3日 cosa run 荣涛

引言

简言之,有一个容器,可以用docker或者podman pull下来,几个链接如下:

  • fedora-coreos-pipeline
  • https://quay.io/
  • quay.io/coreos-assembler/coreos-assembler

coreos-assembler/被安装在容器中的/usr/lib/coreos-assembler目录下,使用cosa shell命令进入容器。

创建Fedora CoreOS

  • Building Fedora CoreOS

1. 创建流程图

下图显示使用COSA 创建Fedora CoreOS的流程:

2. 开始:先决条件

官网上Building Fedora CoreOS使用podman,我的环境podman装不上,我用的docker。

然而,最主要的先决条件是理解coreos-assembler是如何生成磁盘镜像的,并且,以可维护的方式创建它们需要访问虚拟化——具体来说是/dev/kvm

如果你在KVM 虚机中运行,可以尝试使能nested virt,简述为下面指令:

$ cat /sys/module/kvm_intel/parameters/nested
Y

下面有一些云选项提供给裸金属或者nested virt,如:

  • Packet
  • GCE nested virt
  • EC2 i3.metal instances
  • IBM Bare Metal

此外,在Kubernetes内完全支持运行coreos-assembler;Fedora CoreOS流水线在OpenShift 中作为一个私有的裸金属集群pod中运行coreos-assembler,这个pod中挂载了/dev/kvm。查看fedora-coreos-pipeline源代码和guide to run COSA using nested virt with OpenShift in GCP.

3. 下载Docker容器

$ podman pull quay.io/coreos-assembler/coreos-assembler

我用的:

$ docker pull quay.io/coreos-assembler/coreos-assembler
Using default tag: latestlatest: Pulling from coreos-assembler/coreos-assembler
0c2ae48d4544: Pull complete
92e54902f7e4: Pull complete
6051e78b771d: Pull complete
20086a808f59: Pull complete
16c748d7b474: Pull complete
64611d28061f: Pull complete
a2e5a49d1652: Pull complete
8828cffada3f: Pull complete
b46fd9827bd5: Pull complete
7e4680a05da4: Pull complete
595650b13b9d: Pull complete
a2273e4bd4fa: Pull complete
be9cd0230faf: Pull complete
6261502e6232: Pull complete
Digest: sha256:5b255b58da05810dd077ba0be9967ca8bd9c1a23cc9786835bf48cbf6c68057c
Status: Downloaded newer image for quay.io/coreos-assembler/coreos-assembler:latest
quay.io/coreos-assembler/coreos-assembler:latest

查看镜像:

$ docker images
REPOSITORY                                  TAG       IMAGE ID       CREATED         SIZE
quay.io/coreos-assembler/coreos-assembler   latest    bfd1d8866cea   9 hours ago     7.04GB
quay.io/coreos/butane                       release   53539920e69e   3 months ago    6.51MB

4. 创建工作目录

$ mkdir fcos
$ cd fcos

我的目录/home/rongtao/fcos

5. 定义bash昵称,运行cosa

写一个bash脚本运行容器,有一些需要调整的参数。

需要使用non-root执行。

cosa() {env | grep COREOS_ASSEMBLERlocal -r COREOS_ASSEMBLER_CONTAINER_LATEST="quay.io/coreos-assembler/coreos-assembler:latest"if [[ -z ${COREOS_ASSEMBLER_CONTAINER} ]] && $(podman image exists ${COREOS_ASSEMBLER_CONTAINER_LATEST}); thenlocal -r cosa_build_date_str="$(podman inspect -f "{{.Created}}" ${COREOS_ASSEMBLER_CONTAINER_LATEST} | awk '{print $1}')"local -r cosa_build_date="$(date -d ${cosa_build_date_str} +%s)"if [[ $(date +%s) -ge $((cosa_build_date + 60*60*24*7)) ]] ; thenecho -e "\e[0;33m----" >&2echo "The COSA container image is more that a week old and likely outdated." >&2echo "You should pull the latest version with:" >&2echo "podman pull ${COREOS_ASSEMBLER_CONTAINER_LATEST}" >&2echo -e "----\e[0m" >&2sleep 10fifiset -xpodman run --rm -ti --security-opt label=disable --privileged                                    \--uidmap=1000:0:1 --uidmap=0:1:1000 --uidmap 1001:1001:64536                          \-v ${PWD}:/srv/ --device /dev/kvm --device /dev/fuse                                  \--tmpfs /tmp -v /var/tmp:/var/tmp --name cosa                                         \${COREOS_ASSEMBLER_CONFIG_GIT:+-v $COREOS_ASSEMBLER_CONFIG_GIT:/srv/src/config/:ro}   \${COREOS_ASSEMBLER_GIT:+-v $COREOS_ASSEMBLER_GIT/src/:/usr/lib/coreos-assembler/:ro}  \${COREOS_ASSEMBLER_CONTAINER_RUNTIME_ARGS}                                            \${COREOS_ASSEMBLER_CONTAINER:-$COREOS_ASSEMBLER_CONTAINER_LATEST} "$@"rc=$?; set +x; return $rc
}

根据我的环境,我做出了一些小的改动,因为我使用docker,和podman不完全兼容。

6. 执行指令

首先,指令cosa需要使能:

$ source cosa.sh

然后,就可以添加参数地在bash下运行这个命令。

7. 初始化

首先需要从GitHub上克隆配置,需要新建一个空文件夹,并进入:

$ mkdir fcos
$ cd fcos
$ cosa init --branch stable https://github.com/coreos/fedora-coreos-config

我在Gitee上放了上面github仓库的镜像https://gitee.com/rtoax/fedora-coreos-config

克隆的仓库将在`$PWD/src/config/目录中。

7.1. 源

有如下几个源:

          https://kojipkgs.fedoraproject.org/repos-dist/coreos-pool/latest/x86_64/Packages/https://repo.huaweicloud.com/fedora/releases/35/Everything/x86_64/os/Packages/https://dl.fedoraproject.org/pub/fedora/linux/releases/35/Everything/x86_64/os/Packages/https://repo.huaweicloud.com/fedora/updates/35/Everything/x86_64/Packages/https://dl.fedoraproject.org/pub/fedora/linux/updates/35/Everything/x86_64/Packages/https://repo.huaweicloud.com/fedora/updates/testing/35/Everything/x86_64/Packages/
https://dl.fedoraproject.org/pub/fedora/linux/updates/testing/35/Everything/x86_64/Packages/https://repo.huaweicloud.com/fedora/updates/35/Modular/x86_64/Packages/
https://dl.fedoraproject.org/pub/fedora/linux/updates/35/Modular/x86_64/Packages/https://repo.huaweicloud.com/fedora/updates/testing/35/Modular/x86_64/Packages/
https://dl.fedoraproject.org/pub/fedora/linux/updates/testing/35/Modular/x86_64/Packages/

在coreos-assembler源码中对应命令行shell脚本为cmd-init,简言之,该脚本使用git命令克隆一个fedora coreos配置仓库。

8. 下载RPMs

首先,取所有元数据和数据包:

$ cosa fetch
Run docker run
+ docker run --rm -ti --security-opt label=disable --privileged -v /home/rongtao/test-os/coreos-assembler/fcos/a.test:/srv/ --device /dev/kvm --device /dev/fuse --tmpfs /tmp -v /var/tmp:/var/tmp --name cosa quay.io/coreos-assembler/coreos-assembler:latest fetch
Config commit: f1962b51d501262580ec55972f6ca2fc7d3da9e6
[此处省略很多行]
Installing 400 packages:NetworkManager-1:1.32.12-2.fc35.x86_64 (fedora-coreos-pool)NetworkManager-cloud-setup-1:1.32.12-2.fc35.x86_64 (fedora-coreos-pool)NetworkManager-libnm-1:1.32.12-2.fc35.x86_64 (fedora-coreos-pool)NetworkManager-team-1:1.32.12-2.fc35.x86_64 (fedora-coreos-pool)[此处省略很多行]
Input state hash: 5b11f395b70439126f1918f57526cee46a834102e19cf4930588d46302498c7c
Will download: 400 packages (546.1?MB)
⠤ Downloading from 'fedora-coreos-pool'  45% [█████████░░░░░░░░░░░] (29m)

9. 创建

然后进行创建:

$ cosa build

此步骤需要耐心等待,需要时间较长。

每一次build都会在$PWD/builds/中创建一个新的文件夹,包含生成的OSTree提交(tar压缩文件)和qemu虚拟机镜像。

下一步,再次运行cosa build,确保没有再次更改。你可以再次运行cosa fetch检测RPMs更新。

在coreos-assembler源码中对应命令行shell脚本为cmd-fetch

10. 运行

$ cosa run

这将启动builds/latest下的QEMU镜像。它使用-snapshot,所以任何改动都将在你退出qemu后消失。使用Ctrl-a x退出,Ctrl-a ?查看更多选项。

使用cosa run --devshell-console独占shell显示所有日志。

11. 自定义运行

运行r任意位置的qcow2:

$ cosa run --qemu-image ./coreos-style.qcow2

此外,可能在运行镜像的时候传递自定义的ignition配置文件,要求使用子命令kola qemuexec:

$ cosa kola qemuexec --ignition ./ignition.json --ignition-direct --qemu-image ./coreos-style.qcow2

具体帮助信息参见cosa kola qemuexec --help

12. 生成ISO

参见命令buildextend-live对应章节。

13. 可能遇到的问题

13.1. cosa fetch

分支 问题
stable linux-firmware-20210919-125.fc35.noarch.rpm
rhcos-4.6 NetworkManager-1:1.22.14-1.fc32.x86_64
rhcos-4.7 NetworkManager-1:1.26.4-1.fc33.x86_64
rhcos-4.8 NetworkManager-1:1.26.6-1.fc33.x86_64
rhcos-4.9

cosa fetch将下载repomd.xml文件,注意在https://github.com/coreos/fedora-coreos-config中链接已经失效,需要修改为:

仓库中的URL已经失效,
失效URL:https://dl.fedoraproject.org/pub/
重定位到:https://archives.fedoraproject.org/pub/archive/

为了简化上面的问题,执行下面的脚本进行URL替换:

#!/bin/bash
# Rong Tao
# 2021.11.25from_url="https://dl.fedoraproject.org/pub/"
to_url="https://archives.fedoraproject.org/pub/archive/"files=`sudo grep -rl "https://dl.fedoraproject.org/pub/" | grep repo`for f in $files
dosed "s/https:\/\/dl.fedoraproject.org\/pub\//https:\/\/archives.fedoraproject.org\/pub\/archive\//g" -i $f
done

13.1.1. cannot update repo ‘fedora-updates’

$ cosa fetch
Run docker run
+ docker run --rm -ti --security-opt label=disable --privileged -v /home/rongtao/test-os/coreos-assembler/fcos/a.test:/srv/ --device /dev/kvm --device /dev/fuse --tmpfs /tmp -v /var/tmp:/var/tmp --name cosa quay.io/coreos-assembler/coreos-assembler:latest fetch
Config commit: 8ee685de4336f856df18bf2edb12d7e76ae79c43
Using manifest: /srv/src/config/manifest.yaml
Committing fedora-coreos-config-overlay-05core: /srv/src/config/overlay.d/05core ... b051dd01da43793dafbf7b43871369c5f5fc4a385e7e52d197112af977be9a6c
Committing fedora-coreos-config-overlay-08nouveau: /srv/src/config/overlay.d/08nouveau ... a038f599e14a87ddfd41057137755c3aae56b6025f915fc172af97d0c137f168
Committing fedora-coreos-config-overlay-09misc: /srv/src/config/overlay.d/09misc ... a5f9323b6d1659ecf9418c82a5ce964cb568d7c45c4f1cd936c34b67cbc0e37b
Committing fedora-coreos-config-overlay-10coreuser: /srv/src/config/overlay.d/10coreuser ... 4b5df802bc38436cce7e678aa72b106ee1ce0af96c72a9f385135a4a4b9d0ce1
Committing fedora-coreos-config-overlay-14NetworkManager-plugins: /srv/src/config/overlay.d/14NetworkManager-plugins ... faf5ad65722897da7e0d693d7b4977952e5cf40700c0c7fccf0b28db848f3dca
Committing fedora-coreos-config-overlay-15fcos: /srv/src/config/overlay.d/15fcos ... d5de83ffd89156e331b8933aa8b3b28932e672cf4395fffed51d54c3ec138c46
Committing fedora-coreos-config-overlay-20platform-chrony: /srv/src/config/overlay.d/20platform-chrony ... 9bc640c6e4749c9d2b4223e7e29c66ad6db0d98eb72fb11b190e7ae917d69b5b
Running: rpm-ostree compose tree --repo=/srv/tmp/repo --touch-if-changed /srv/tmp/treecompose.changed --cachedir=/srv/cache --unified-core /srv/tmp/override/coreos-assembler-override-manifest.yaml --download-only
0 metadata, 0 content objects imported; 0 bytes content written
rpm-ostree version: 2021.13
No previous commit for fedora/x86_64/coreos/bodhi-updates
Enabled rpm-md repositories: fedora fedora-updates fedora-modular fedora-updates-modular
⠉ Updating metadata for 'fedora'  95% [███████████████████░] (0s) Updating metadata for 'fedora'... done
⠉ Updating metadata for 'fedora-updates'  87% [█████████████████░░░] (1s) Updating metadata for 'fedora-updates'... done
error: Updating rpm-md repo 'fedora-updates': cannot update repo 'fedora-updates': Yum repo downloading error: Downloading error(s): repodata/9a011f78a635d685046799c26bf5535db37aa9fcba981b10b45b00aad118c648-primary.xml.zck - Cannot download, all mirrors were already tried without success; repodata/aa482bfd3a0fed676f370cec186dc26b8c79e231e54343faf8292b4d29434968-filelists.xml.zck - Cannot download, all mirrors were already tried without success; Last error: Curl error (28): Timeout was reached for https://archives.fedoraproject.org/pub/archive/fedora/linux/updates/31/Everything/x86_64/repodata/9a011f78a635d685046799c26bf5535db37aa9fcba981b10b45b00aad118c648-primary.xml.zck [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
+ rc=1
+ set +x

上面下载的文件不存在,参考网址

9a011f78a635d685046799c26bf5535db37aa9fcba981b10b45b00aad118c648-primary.xml.zck 不存在
5dd866cf6ce0e21f428b6c5bf4eabee65719b72c8cc279393125e79b34fdae31-primary.xml.zck 存在
aa482bfd3a0fed676f370cec186dc26b8c79e231e54343faf8292b4d29434968-filelists.xml.zck 不存在
d601f9ef02bca6948263031733c69a1dbdc8ad11750d4e8dbd91256d775ecaf5-filelists.xml.zck 存在

上面下载的文件存在,但下载超时,参考网址

9a011f78a635d685046799c26bf5535db37aa9fcba981b10b45b00aad118c648-primary.xml.zck

注意,在初始化过程中要指定fedora coreos config的分支:cosa init --branch stable,因为默认是个测试分支。

13.1.2. 不存在的rpm包

RPM包repo网址

还是cosa fetch阶段,提示错误:没有Packages/l/linux-firmware-20210919-125.fc35.noarch.rpm。在网页上查看,也是找不到这个rpm包。

可以尝试初始化阶段指定别的分支试试。在初始化阶段使用特定发布的分支:

$ cosa init --branch rhcos-4.9 https://gitee.com/rtoax/fedora-coreos-config

但是这个问题并没有得到解决。我又换了一个分支rhcos-4.6,遇到了下面的问题。

13.1.3. Couldn’t find locked package

$ cosa init --branch rhcos-4.6 https://gitee.com/rtoax/fedora-coreos-config
[...]
rpm-ostree version: 2021.13
No previous commit for fedora/x86_64/coreos/testing-devel
Enabled rpm-md repositories: fedora-coreos-pool fedora fedora-updates
Updating metadata for 'fedora-coreos-pool'... done
Updating metadata for 'fedora'... done
Updating metadata for 'fedora-updates'... done
Importing rpm-md... done
rpm-md repo 'fedora-coreos-pool'; generated: 2021-11-24T21:43:31Z solvables: 14546
rpm-md repo 'fedora'; generated: 2020-04-22T22:22:36Z solvables: 55327
rpm-md repo 'fedora-updates'; generated: 2021-05-25T01:50:03Z solvables: 27535
error: Couldn't find locked package 'NetworkManager-1:1.22.14-1.fc32.x86_64' (pkgs matching NEVRA: 0; mismatched checksums: 0)

如果是rhcos-4.6分支,将提示NetworkManager-1:1.26.4-1.fc33.x86_64

用coreos-assembler自定义CoreOS

  • Using coreos-assembler to build custom FCOS derivatives

文章中的意思是,coreos-assembler是专门为Fedora CoreOS打造的工具。维护一个定制的操作系统构建是一项不容小觑的任务。但是,我们将努力记录更改,并保持 coreos-assembler 相对稳定。

CoreOS-assembler 用于构建 RHEL CoreOS,但是 CoreOS-assembler 目前不是 Red Hat 产品。

使用CoreOS Assembler

Working with CoreOS Assembler

1. 理解 config git:COREOS_ASSEMBLER_CONFIG_GIT

理论上,coreos-assembler将生成OSTree 提交和磁盘镜像绑定到一个独立的建立模式中。建立目标被config git定义,存放在src/config中(相对于build目录)。

我们可以使用环境变量COREOS_ASSEMBLER_CONFIG_GIT,例如:

$ export COREOS_ASSEMBLER_CONFIG_GIT=/path/to/github.com/coreos/fedora-coreos-config/
$ cosa init --force /dev/null
$ cosa fetch && cosa build

否则你需要执行$ cosa init https://github.com/coreos/fedora-coreos-config才行。

2. config git组件

2.1. manifest.yaml

为了生成OSTree commits,CoreOS Assembler使用manifest.yaml文件:一个rpm-ostre或者treefile,它大部分可以归结为一个 rpm 列表和一组 rpm-md 仓库。

它也支持postprocess进行人工修改。查看rpm-ostree的文档Treefile format reference。

2.2. overlay.d/

通过在overlay.d/下创建子目录,coreos-assembler也支持嵌入架构依赖的配置文件和脚本。每个子目录都是通过OSTree commits添加,以字母顺序排序。建议使用以字母为前缀的名称,如05core, 10extras。非目录将会被忽略。例如,README.md文件就被忽略了。

2.3. image.yaml

这个YAML文件配置输出的磁盘镜像,支持的keys有:

  • size:以GB为单位的云镜像需求的大小;
  • extra-kargs:内核命令行参数列表;
  • include:包含另一个yaml文件,列出的值将被扩展。其他类型,源配置文件中的优先级高。

3. 修改config git配置

首先你可以扩展镜像大小,修改src/config/image.yaml即可,然后再次运行cosa build,并且得知OSTree commit没有变化,但是一个新的镜像将在builds中生成,当你运行cosa run时,将会生成这个镜像。

另外,尝试编辑src/config/manifest.yaml,添加或移除packages。你也可以添加本地rpm-md file:///仓库。

4. 使用overrides

开发速度取决于编辑-编译-调试这个周期。coreos-assembler支持overrides/子目录,允许容易的覆盖在基础OS上本地生成的内容。

overrides/子目录下级目录:

  • overrides/rootfs
  • overrides/rpm

假如你想修改ostreeignition-dracut,看这个github上的pull requestPR,增加了make install DESTDIR=支持。总体上,上游建立的系统支持。

具体的,如果/path/to/cosa-workdir时你运行cosa init的目录,那么在项目编辑之后,为新添加的组件执行下面的命令:

$ make install DESTDIR=/path/to/cosa-workdir/overrides/rootfs

这将安装文件到/path/to/cosa-buildroot/overrides/rootfs/usr/bin/ostree。然后,可以在cosa工作目录执行cosa build,覆盖合并。

你也可以选择overrides/rpm目录接收建立前的RPMs包。当你想在任意位置搭建二进制RPM,或者你想通过官方的建立流程,这可能是比较好的选择。如果任何RPMs包已经存在,那么coreos-assembler将自动执行createrepo_c并且确保它将被用于构建。

未来,coreos-assembler可能也会支持一些overrides/src

5. 使用cosa run --bind-ro更快的迭代

Using cosa run --bind-ro for even faster iteration

$ cosa run --bind-ro ~/src/github/containers/podman,/run/workdir
$ cd ~
$ cosa run \--qemu-image src/fcos/build/latest/x86_64/fedora-coreos-*.x86_64.qcow2 \--bind-ro src/github/containers/podman,/run/workdir

TODO

6. 使用host的二进制

$ make
$ install -D -m 0755 bin/amd64/ignition /path/to/cosadir/overrides/initramfs/usr/bin/ignition
$ cd /path/to/cosadir
$ cosa buildinitramfs-fast
$ cosa run --qemu-image tmp/fastbuild/fastbuildinitrd-fedora-coreos-qemu.qcow2

7. 使用不同的CA证书

如果你需要访问host上的CA证书,例如,当你需要访问不是公共的私有git仓库,你可以使用环境变量COREOS_ASSEMBLER_CONTAINER_RUNTIME_ARGS挂载挂载host证书

注意:共享/etc/pki/ca-trust可能会被SELinux阻塞,所以你可能必须使用一个带有system_u:object_r:container_file_t:s0内容的文件夹。具体请参考SELinux。

$ export COREOS_ASSEMBLER_CONTAINER_RUNTIME_ARGS='-v /etc/pki/ca-trust:/etc/pki/ca-trust:ro'
$ cosa init https://github.com/coreos/fedora-coreos-config.git
$ cosa fetch && cosa build

8. 在谷歌计算平台上基于OpenShift运行CoreOS Assembler

Running CoreOS Assembler in OpenShift on Google Compute Platform

apiVersion: v1
kind: Pod
metadata:labels:run: cosaname: cosa
spec:containers:- args:- shell- sleep- infinityimage: quay.io/coreos-assembler/coreos-assembler:latestname: cosaresources:requests:# Today COSA hardcodes 2048 for launching VMs.  We could# probably shrink that in the future.memory: "3Gi"devices.kubevirt.io/kvm: "1"limits:memory: "3Gi"devices.kubevirt.io/kvm: "1"volumeMounts:- mountPath: /srvname: workdirvolumes:- name: workdiremptyDir: {}restartPolicy: Never

CoreOS Assembler命令行参考

Coreos Assembler Command Line Reference

下面介绍cosa在CoreOS Assembler容器中的子命令。可以查看--help帮助信息

1. 主要命令

名称 描述
build 使用已经获取的包构建OSTree和人工镜像
clean 删除所有人工构建
fetch 取并注入最新的包
init 构建当前目录,并下载给定git repo
kola 使用kola运行测示例
list 列出可用的本地构建
run 用Qemu运行一个Core OS实例
shell 进入Coreos-Assembler容器shell
virt-install 用libvirt安装一个CoreOS

下面的命令仅仅做部分的重建。

  • build-fast:从已经存在的镜像创建一个qcow2镜像,并更新ostree提交。
  • buildinitramfs-fast:从已经存在的构建中创建一个新的qcow2镜像文件,并且更新initramfs。

2. buildextend 命令

coreos-assembler

默认情况,build命令将构建一个OSTree和一个QEMU镜像。下面的命令给出了额外选项。

2.1. buildextend-live 生成Live ISO

cmd-buildextend-live

# 1. 先执行下面命令
$ cosa buildextend-metal4k
# 2. 生成ISO文件
$ cosa buildextend-live --build 35.20211129.1.0.

2.2. buildextend-{dasd,metal,metal4k,qemu}

2.3. buildextend-{aliyun,aws,azure,digitalocean,exoscale,gcp,vultr}

2.4. buildextend-{azurestack,ibmcloud,openstack,vmware}

2.5. {aliyun,aws}-replicate

附录

1. coraos-assembler的安装

TODO

2. 构建cosa容器

TODO

参考链接

  • https://coreos.github.io/coreos-assembler/
  • Build your own distribution based on Fedora CoreOS
Copyright (C) CESTC Com.

CoreOS coreos-assembler文档相关推荐

  1. Docker部署文档

    Docker部署文档 目录 Docker部署文档 1 一.什么是Docker 3 1.1Docker简介 3 1.2对比传统虚拟机总结 4 1.3Docker通常用于如下场景: 5 1.4基本概念 5 ...

  2. 通过kubeadm安装kubernetes 1.7文档记录[docker容器方式]

    参照了网上N多文档,不一一列表,共享精神永存!!!! ================================================== 获取所有安装包 安装包分为两类,rpm安装包 ...

  3. 尚硅谷k8s安装文档_Kubernetes(k8s)中文文档 从零开始k8s_Kubernetes中文社区

    译者:王乐 这部文档是面对想要学习Kubernetes集群的读者.如果你对入门指南已经可以满足你对这个列表上所列的需求,我们建议你继续阅读这个,因为他是根据前人积累经验所写的新手指南.当然如果除了学习 ...

  4. Kubernetes(k8s)入门及集群部署文档

    文章目录 一.k8s 快速入门 简介 部署方式的进化 k8s能做什么 架构 整体主从方式 Master 节点架构 Node 节点架构 概念 快速体验 流程叙述 二.k8s 集群安装 前置要求 了解ku ...

  5. Codis 3.0.1 安装使用文档(官方)

    Codis 使用文档 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表) ...

  6. Centos7 部署Kubenetes文档

    Centos7 部署Kubenetes文档 部署说明:一个master + 一个node 操作系统信息 [root@zf zhangfeng]# uname -a Linux zf.master 3. ...

  7. Linux内核官方文档atomic_ops.txt【摘自Linux 内核文档】

    摘自Linux内核文档 Documentation/atomic_ops.txt,不是本人原创 Semantics and Behavior of Atomic and Bitmask Operati ...

  8. Sandcastle帮助文档生成器使用介绍

    一.软件介绍 Sandcastle是一个管理类库的文档编译器,是用于编译发布组件(Assembly)信息的一个工具,这个工具通过反射和 Xslt技术,可以从dll文件及其xml注释(命令行编译时加/d ...

  9. GCC优化选项:一般的文档里不容易找到的-Os

    From: http://hi.baidu.com/ah__fu/item/9287dd5227227c908d12ed50 在研究编译驱动的makefile的时候,发现GCC的命令行里面有一个-Os ...

最新文章

  1. 虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course
  2. Php-SPL库中的迭代器类详解(转)
  3. 连接LilyPad之Windows平台的驱动
  4. BoW图像检索Python实战
  5. 浅谈vue $mount()
  6. 全国计算机等级考试题库二级C操作题100套(第26套)
  7. 1646. 获取生成数组中的最大值
  8. @aspect注解类不生效_Spring Boot从入门到精通(三)常用注解含义及用法分析总结...
  9. FPGA原语使用方法
  10. 谁在控制着 iCloud 中国区账号的密钥?
  11. enumerable java_ruby中的Enumerable的使用
  12. CityMaker SDK与三维GIS城市
  13. Hibernate技术
  14. c 语言 农历,农历转阴历 c语言
  15. Linux中断管理 (3)workqueue工作队列
  16. Learning Skeletal Articulations with Neural Blend Shapes(使用神经混合形状学习骨骼关节)SIGGRAPH 2021顶刊解析
  17. 将 MobaXterm 的高亮/突出显示集功能(HighLight sets)移植到 Xshell6 中使用
  18. MySQL 报错:Error Code: 1264. Out of range value for column ‘final‘ at row 5
  19. springboot整合mybatis (三) 一对多配置
  20. 200 万年薪!西交大 2 位计算机博士入选华为天才少年

热门文章

  1. Flask使用ajax进行前后端交互
  2. Struts2之拦截器篇
  3. Map(String ArrayList(Student))相关操作和遍历和利用Map(k v)统计字母出现次数
  4. 三个梯度磁场_第二节 梯度磁场系统
  5. IDEA查看Maven路径
  6. leetcode题解72-编辑距离
  7. ORA-03113: end-of-file on communication channel
  8. 【洛谷P3410】拍照题解(最大权闭合子图总结)
  9. 第二冲刺阶段工作总结10
  10. Android IT资讯网络阅读器应用源码