K8s v1.23.9 使用helm/DaemonSets安装calico网络组件

一. helm

  1. 安装helm,此处不在赘述,可在上一篇 K8s v1.23.9 使用helm安装calico网络组件 中找到
  2. 下载tigera-operator的helm chart:
    wget https://github.com/projectcalico/calico/releases/download/v3.21.2/tigera-operator-v3.21.2-1.tgz

3.查看可定制的配置

  helm show values tigera-operator-v3.21.2-1.tgz

可定制配置如下,可根据实际情况进行定制

imagePullSecrets: {}

installation:
  enabled: true
  kubernetesProvider: ""

apiServer:
  enabled: true

certs:
  node:
    key:
    cert:
    commonName:
  typha:
    key:
    cert:
    commonName:
    caBundle:

# Configuration for the tigera operator
tigeraOperator:
  image: tigera/operator
  version: v1.23.3
  registry: quay.io
calicoctl:
  image: quay.io/docker.io/calico/ctl
  tag: v3.21.2

4.开始安装

  helm install calico tigera-operator-v3.21.2-1.tgz -f values.yaml

等待并确认各个节点上的pod是否成功运行

watch kubectl get pods -n calico-system

# 默认你当前集群的所有节点上都会运行一个calico的pod
# NAME                                       READY   STATUS    RESTARTS   AGE
# calico-kube-controllers-7f58dbcbbd-kdnlg   1/1     Running   0          2m34s
# calico-node-nv794                          1/1     Running   0          2m34s
# calico-typha-65f579bc5d-4pbfz              1/1     Running   0          2m34s

查看一下calico向k8s中添加的api资源:

kubectl api-resources | grep calico

bgpconfigurations                              crd.projectcalico.org/v1               false        BGPConfiguration
bgppeers                                       crd.projectcalico.org/v1               false        BGPPeer
blockaffinities                                crd.projectcalico.org/v1               false        BlockAffinity
caliconodestatuses                             crd.projectcalico.org/v1               false        CalicoNodeStatus
clusterinformations                            crd.projectcalico.org/v1               false        ClusterInformation
felixconfigurations                            crd.projectcalico.org/v1               false        FelixConfiguration
globalnetworkpolicies                          crd.projectcalico.org/v1               false        GlobalNetworkPolicy
globalnetworksets                              crd.projectcalico.org/v1               false        GlobalNetworkSet
hostendpoints                                  crd.projectcalico.org/v1               false        HostEndpoint
ipamblocks                                     crd.projectcalico.org/v1               false        IPAMBlock
ipamconfigs                                    crd.projectcalico.org/v1               false        IPAMConfig
ipamhandles                                    crd.projectcalico.org/v1               false        IPAMHandle
ippools                                        crd.projectcalico.org/v1               false        IPPool
ipreservations                                 crd.projectcalico.org/v1               false        IPReservation
kubecontrollersconfigurations                  crd.projectcalico.org/v1               false        KubeControllersConfiguration
networkpolicies                                crd.projectcalico.org/v1               true         NetworkPolicy
networksets                                    crd.projectcalico.org/v1               true         NetworkSet

5.安装calicoctl作为kubectl的插件使用

# 安装
cd /usr/local/bin
curl -o kubectl-calico -O -L  "https://github.com/projectcalico/calicoctl/releases/download/v3.21.2/calicoctl" 
chmod +x kubectl-calico

# 验证插件是否工作
kubectl calico -h

二. DaemonSets-calico
1.使用官方远程calico安装

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

2.与使用helm安装的第四步后续一致,检查相应pod是否运行成功等等

end

参考文章、博客:
使用kubeadm部署Kubernetes 1.23
国内环境Ubuntu-20.04安装Kubernetes-1.23.9