参考:https://docs.projectcalico.org/getting-started/kubernetes/quickstart
使用此快速入门可以快速轻松地试用 Calico 功能。
准备
如果主机上存在 NetworkManager,确保 Calico 可以管理 cali和 tunl主机上的接口。
配置NetworkManager
NetworkManager 操作默认网络中接口的路由表 命名空间,其中 Calico veth 对被锚定以连接到容器。 这会干扰 Calico 代理正确路由的能力。
在以下位置创建配置文件 /etc/NetworkManager/conf.d/calico.conf阻止 NetworkManager 干扰接口:
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico
概念
基于 Operator 的安装
本快速入门指南使用 Tigera Operator 安装 Calico。 Operator 为 Calico 提供生命周期管理 通过定义为自定义资源定义的 Kubernetes API 公开。
注意 :也可以在没有 Operator 的情况下直接使用 Kubernetes 清单安装 Calico。 对于不使用 Tigera Operator 的平台和指南,您可能会注意到步骤和 Kubernetes 的一些差异 资源与本指南中提供的资源相比。
安装
初始化K8s集群
1.使用以下命令初始化 master:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
注意 :如果 192.168.0.0/16 已在您的网络中使用,您必须选择不同的 pod 网络 CIDR,替换上面命令中默认的 192.168.0.0/16。
2.执行以下命令配置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
安装Calico
1.安装 Tigera Calico Operator 和自定义资源定义。
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
2.通过创建必要的自定义资源来安装 Calico。
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
注意 :在创建此清单之前,请阅读其内容并确保其设置适合您的环境。 例如, 您可能需要更改默认 IP 池 CIDR 以匹配您的 pod 网络 CIDR。
3.使用以下命令确认所有 pod 都在运行。
watch kubectl get pods -n calico-system
注意 :Tigera Operator 将资源安装在 calico-system命名空间。 其他安装方法可能使用 kube-system 命名空间。
4.删除 master 上的污点,以便您可以在其上安排 pod。
kubectl taint nodes --all node-role.kubernetes.io/master-
它应该返回以下内容。
node/<your-hostname> untainted
5.使用以下命令确认您的集群中现在有一个节点。
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