本文旨在带你快速在一个单节点Kuberenetes集群上安装Calico,大约需要15分钟。
通过快速安装,迅速且轻而易举地了解到Calico的特性。如果要部署一个生产环境的集群,请见在Kuberenetes上安装Calico。
- 确保已有一个满足下列要求的Linux主机:
- x86-64、arm64、ppc64le、或s390x处理器
- 2CPU
- 2GB RAM
- 10GB可用磁盘空间
- RHEL 7.x+、CentOS 7.x+、Ubuntu 16.04+、或Debian 9.x+
- 确保Calico可以操作主机上的
cali
和tunl
接口。如果主机上有NetworkManager,参见配置NetworkManager。
这里我们使用Tigera operator进行快速安装。Operator为Calico提供整个生命周期的管理,通过Kubernetes API暴露出来,定义成了一个自定义资源(CRD)。
注意:不用Operator,直接用Kubernetes的manifest也可以安装Calico。对于不使用Tigera operator的平台和说明文档,可能会有一些步骤和Kubernetes资源跟这里讲的不一样。
注意:安装完kubeadm之后,不要关闭或重启主机。直接按照下面的步骤继续。
- 用一个带sudo权限的普通用户,打开一个安装了kubeadm的主机终端。
- 用下面的命令安装master。
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
注意:如果你的网络中已经用了192.168.0.0/16了,那就要换一个Pod网络CIDR,在上面的命令中替换192.168.0.0/16即可。
- 执行下面的命令,配置kubectl(执行
kubeadm init
之后也会打印出这些命令)。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装Tigera Calico operator,以及CRD。
kubectl create -f https://projectcalico.docs.tigera.io/manifests/tigera-operator.yaml
- 创建需要的自定义资源并安装Calico。关于这里面的配置选项,详见安装指引。
kubectl create -f https://projectcalico.docs.tigera.io/manifests/custom-resources.yaml
注意:创建这个manifest之前,看一下里面的东西,确保配置符合你的环境要求。比如可能需要改一下默认的IP池CIDR,匹配你的Pod网络的CIDR。
- 确认所有的Pod都处于运行状态。
watch kubectl get pods -n calico-system
等所有Pod的STATUS
都变成Running
。
注意:Tigera operator将资源安装在
calico-system
命名空间中。其他的安装方式可能会装到kube-system
中。
- 删除master上的冷屁股,这样就可以在上面调度Pod。
kubectl taint nodes --all node-role.kubernetes.io/master-
执行结果如下。
node/<your-hostname> untainted
- 确认集群中现在已经有了一个节点。
kubectl get nodes -o wide
返回结果类似下面这样。
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
<your-hostname> Ready master 52m v1.12.2 10.128.0.28 <none> Ubuntu 18.04.1 LTS 4.15.0-1023-gcp docker://18.6.1
恭喜你!现在已经有了一个带Calico的单节点Kubernetes集群。