编译安装cfssl(Alpine Linux)¶
在部署 K3s高可用etcd 之前,需要先准备用于签发 etcd集群TLS设置 工具 cfssl
。虽然可以用其他发行版提供的 cfssl
,不过,我还是决定在部署 K3s - 轻量级Kubernetes 的 Alpine Linux 环境中完整实现Kuberntes,所以先使用 从Dockerfile构建Docker镜像 构建 x-dev
容器,再安装 cfssl
工具。
构建x-dev容器¶
采用 Alpine Linux软件开发环境构建 的Dockerfile配置:
FROM alpine:latest
RUN apk update && apk upgrade
RUN apk add --no-cache openssh sudo bind-tools
RUN apk add --no-cache build-base gdb strace
RUN apk add --no-cache go rust
RUN apk add --no-cache git vim htop
RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
RUN adduser -u 502 -G wheel -h /home/huatai -s /bin/sh -D huatai
RUN echo -n 'huatai:some_password_here' | chpasswd
RUN echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 22
COPY entrypoint.sh /
执行以下命令构建镜像并启动容器:
docker build -t alpine-dev .
docker run -itd --hostname x-dev --name x-dev -p 122:22 alpine-dev:latest
登陆容器:
ssh 127.0.0.1 -p 122
通过软件仓库安装cfssl¶
Alpine Linux的 community 仓库提供了
cfssl
,但是需要使用test
分支:apk add cfssl --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
通过源代码编译安装cfssl¶
通过 Alpine Linux软件开发环境构建 安装的 Go Atlas 编译 cfssl
工具链可以验证Go编译环境安装是否正确:
git clone git@github.com:cloudflare/cfssl.git
cd cfssl
make
编译完成后在 bin
目录下有以下执行文件:
bin
├── cfssl
├── cfssl-bundle
├── cfssl-certinfo
├── cfssl-newkey
├── cfssl-scan
├── cfssljson
├── mkbundle
├── multirootca
└── rice