Kind 是一个使用 Docker 容器“节点”运行本地 Kubernetes 集群的工具。Kind 主要用于测试 Kubernetes 本身,但也可用于本地开发或 CI。在本用例中,我们将使用 Kind 与 Travis。让我们学习如何操作。
让我们从安装 Kind 开始。以下是一个我创建的 Bash 脚本,您可以在您的 ` .travis.yml` 文件中运行它,但这只是一种方法。我还会分享另一种无需此 Bash 脚本的方法。
#!/bin/bash
curl -Lo ./kind https://kind.kubernetes.ac.cn/dl/v0.11.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/bin/kind
echo
apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nul
curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io kubectl
echo
echo "Installing OpenStack client"
sleep 2
apt-get install -y python3-pip
pip3 install python-openstackclient python-octaviaclient
mkdir -p /etc/openstack
echo
wget https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-openstack/master/templates/env.rc -O /tmp/env.rc
echo
curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v0.4.0/clusterctl-linux-amd64 -o clusterctl
chmod +x ./clusterctl
mv ./clusterctl /usr/local/bin/clusterctl
kind create cluster
echo
echo "Create the cluster for Travis:"
echo "kubectl cluster-info --context kind-kind"
echo "kubectl get nodes"
echo
echo "Initialize the cluster:"
echo "clusterctl init --infrastructure 'openstack:v0.4.0' --core 'cluster-api:v0.4.1' --control-plane 'kubeadm:v0.4.1' --bootstrap 'kubeadm:v0.4.1'"
这个 Bash 脚本将获取一些东西,特别是 Kind 和 OpenStack,然后它会为您创建一个集群。我的方法略有不同,因为我想提供选项和灵活性,以下是我的设置方法,只使用 YAML。
我创建的 ` .travis.yml` 文件目前如下所示
dist: jammy
language: go
go:
- 1.15.x
services:
- docker
jobs:
include:
- stage: Kind example
before_script:
- >-
curl -LO
https://storage.googleapis.com/kubernetes-release/release/$(curl -s
https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
&& chmod +x kubectl && sudo mv kubectl /usr/local/bin/
- GO111MODULE="on" go get sigs.k8s.io/[email protected]
- kind create cluster
- kubectl config use-context kind-kind
- kubectl create sa default
script:
- kubectl run busybox --image=busybox
- kubectl get pods
如果 Kind 在您的虚拟机中成功构建,您将在 Travis 构建日志中看到以下内容
请查看我的构建 以获取更多信息。
您刚刚将 Kind 集成到 Travis 并启动了一个 Kind 集群!与往常一样,以下是我的代码库,您可以一步一步地进行操作,亲眼看看将 Kind 集成到 Travis 是多么容易。
与往常一样,如果您对将 Kind 和 Travis 集成有任何疑问,请通过电子邮件联系我,我将协助您完成本教程。
祝您构建愉快!