首页 > 其他分享 >部署 calicoctl

部署 calicoctl

时间:2023-08-17 18:11:46浏览次数:29  
标签:calicoctl string kubernetes 示例 部署 API etcd

calicoctl 与 kubectl

在以前的版本中,calicoctl需要管理projectcalico.org/v3 API组中的Calico API资源。calicoctl CLI工具提供了对这些API的重要验证和默认设置。

在较新的版本中,Calico API服务器在服务器端执行默认和验证,公开相同的API语义,而不依赖于calicoctl。因此,我们建议安装Calico API服务器,并在大多数操作中使用kubectl而不是calicoctl。

calicoctl 以二进制文件运行

下载calicoctl

# curl -L https://github.com/projectcalico/calico/releases/latest/download/calicoctl-linux-amd64 -o calicoctl

添加执行权限

# chmod +x ./calicoctl

calicoctl 以kubectl 插件运行

下载calicoctl

# curl -L https://github.com/projectcalico/calico/releases/latest/download/calicoctl-linux-amd64 -o kubectl-calico

添加执行权限

# chmod +x ./calicoctl

验证插件

# kubectl calico -h

calicoctl 以pod方式运行

etcd

# kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calicoctl-etcd.yaml

Kubernetes API datastore

# kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calicoctl.yaml

验证calicoctl

# kubectl exec -ti -n kube-system calicoctl -- /calicoctl get profiles -o wide
NAME                 TAGS
kns.default          kns.default
kns.kube-system      kns.kube-system

配置 calicoctl 连接到 Kubernetes API 数据存储

默认配置

默认情况下,calicoctl将尝试使用位于$(HOME)/.kube/config的默认kubeconfig从Kubernetes API读取。

如果默认的kubeconfig不存在,或者您想指定替代的API访问信息,可以配置选项来指定。

连接 kubernetes API 配置选项

配置文件选项 环境变量 描述 模式
datastoreType DATASTORE_TYPE 指示要使用的数据存储。[默认值:kubernetes] kubernetes,etcdv3
kubeconfig KUBECONFIG 使用 Kubernetes API数据存储时,要使用的 kubeconfig 文件的位置,例如 /path/to/kube/config。 string
k8sAPIEndpoint K8S_API_ENDPOINT Kubernetes API 的位置。如果使用 kubeconfig,则不需要。[默认值:https://kubernetes-api:443] string
k8sCertFile K8S_CERT_FILE 用于访问 Kubernetes API 的客户端证书的位置,例如/path/to/cert. string
k8sKeyFile K8S_KEY_FILE 用于访问 Kubernetes API 的客户端密钥的位置,例如/path/to/key. string
k8sCAFile K8S_CA_FILE 用于访问 Kubernetes API 的 CA 位置,例如/path/to/ca. string
k8sToken   用于访问 Kubernetes API 的令牌。 string

命令行方式连接

# DATASTORE_TYPE=kubernetes KUBECONFIG=~/.kube/config calicoctl get nodes

配置文件示例

apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  datastoreType: 'kubernetes'
  kubeconfig: '/path/to/.kube/config'

访问单个 kubernetes API

# export DATASTORE_TYPE=kubernetes
# export KUBECONFIG=~/.kube/config
# calicoctl get workloadendpoints

OR

# export CALICO_DATASTORE_TYPE=kubernetes
# export CALICO_KUBECONFIG=~/.kube/config
# calicoctl get workloadendpoints

访问指定 kubernetes API

# export DATASTORE_TYPE=kubernetes
# export KUBECONFIG=~/.kube/main:~/.kube/auxy
# calicoctl get --context main workloadendpoints
# calicoctl get --context auxy workloadendpoints

检测配置文件

正确的设置将生成已注册节点的列表。如果返回了一个空列表,那么您要么指向了错误的数据存储,要么没有注册任何节点。如果返回错误,请尝试更正该问题,然后重试。
# calicoctl get nodes

配置 calicoctl 连接到 etcd 数据存储

连接 etcd 配置选项

配置文件选项 环境变量 描述 模式
datastoreType DATASTORE_TYPE 指示要使用的数据存储。如果未指定,则默认为kubernetes. (选修的) kubernetes,etcdv3
etcdEndpoints ETCD_ENDPOINTS 以逗号分隔的 etcd 端点列表。示例:(http://127.0.0.1:2379,http://127.0.0.2:2379必填) string
etcdDiscoverySrv ETCD_DISCOVERY_SRV 通过 SRV 记录发现 etcd 端点的域名。与 互斥etcdEndpoints。示例:(example.com可选) string
etcdUsername ETCD_USERNAME RBAC 的用户名。示例:(user可选) string
etcdPassword ETCD_PASSWORD 给定用户名的密码。示例:(password可选) string
etcdKeyFile ETCD_KEY_FILE 包含与客户端证书匹配的私钥的文件的路径calicoctl。允许calicoctl参与双向 TLS 身份验证并向 etcd 服务器标识自身。示例:(/etc/calicoctl/key.pem可选) string
etcdCertFile ETCD_CERT_FILE 包含颁发给 的客户端证书的文件的路径calicoctl。允许calicoctl参与双向 TLS 身份验证并向 etcd 服务器标识自身。示例:(/etc/calicoctl/cert.pem可选) string
etcdCACertFile ETCD_CA_CERT_FILE 包含颁发 etcd 服务器证书的证书颁发机构 (CA) 根证书的文件的路径。配置calicoctl信任签署根证书的 CA。该文件可能包含多个根证书,导致calicoctl信任所包含的每个 CA。示例:(/etc/calicoctl/ca.pem可选) string
etcdKey   与客户端证书匹配的私钥calicoctl。允许calicoctl参与双向 TLS 身份验证并向 etcd 服务器标识自身。(可选) string
etcdCert   客户端证书颁发给calicoctl. 允许calicoctl参与双向 TLS 身份验证并向 etcd 服务器标识自身。(可选) string
etcdCACert   颁发 etcd 服务器证书的证书颁发机构 (CA) 的根证书。配置calicoctl信任签署根证书的 CA。配置文件可能包含多个根证书,导致calicoctl信任其中包含的每个 CA。(可选) string

配置文件示例

apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  etcdEndpoints: https://etcd1:2379,https://etcd2:2379,https://etcd3:2379
  etcdKeyFile: /etc/calico/key.pem
  etcdCertFile: /etc/calico/cert.pem
  etcdCACertFile: /etc/calico/ca.pem

包含证书信息的配置示例

apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  datastoreType: etcdv3
  etcdEndpoints: 'https://127.0.0.1:2379'
  etcdCACert: |
    -----BEGIN CERTIFICATE-----
    MIICKzCCAZSgAwIBAgIBAzANBgkqhkiG9w0BAQQFADA3MQswCQYDVQQGEwJVUzER
    MA8GA1UEChMITmV0c2NhcGUxFTATBgNVBAsTDFN1cHJpeWEncyBDQTAeFw05NzEw
    MTgwMTM2MjVaFw05OTEwMTgwMTM2MjVaMEgxCzAJBgNVBAYTAlVTMREwDwYDVQQK
    EwhOZXRzY2FwZTENMAsGA1UECxMEUHViczEXMBUGA==
    -----END CERTIFICATE-----
  etcdCert: |
    -----BEGIN CERTIFICATE-----
    gI6iLXgMsp2EOlD56I6FA1jrCtNb01XQvX3eyFuA6g5T1jWGYBDtvQb0WRVkdUy9
    L/uK+sHQwtloCSuakcQAsWV9bajCQtHX8XGu25Yz56kpJ/OJjcishxT6pc/sthum
    A5PX739JsNUi/p5aG+H/6eNx+ukJP7QaM646YCfS5i8S9DJUvim+/BSlKi2ZiOCd
    0MYH4Xb7lmAOTNmTvSYpKo9J2fZ9erw0MYSBTyjh6F7PRbHBiivgUnJfGQ==
    -----END CERTIFICATE-----
  etcdKey: |
    -----BEGIN RSA PRIVATE KEY-----
    k0dWj16h9P6TvfcNl2iwT4VIwx0uy2faWBED1DrCJcuQCy5nPrts2ZIaAWPi1t3t
    VbDKQvs+KXBEeqh0qYcYkejUXqIF0uKUFLjiQmZssjpL5RHqqWuYKbO87n+Jod1L
    TjGRHdbP0zF2U0LdjM17rc2hpJ3qrmgJ7pOLzbXMcOr+NP1ojRCArXhQ4iLs7D8T
    eHw9QH4luJYtnmk7x03izLMQdLWcKnUbqh/xOVPyazgJHXwRxwNXpMsBVGY=
    -----END RSA PRIVATE KEY-----

使用环境变量示例

# ETCD_ENDPOINTS=http://myhost1:2379 calicoctl get bgppeers

使用etcd DNS 发现示例

# ETCD_DISCOVERY_SRV=example.com calicoctl get nodes

使用 IPv6 示例

创建一个在IPv6 localhost[::1]上侦听的单节点etcd集群。

# etcd --listen-client-urls=http://[::1]:2379 --advertise-client-urls=http://[::1]:2379

使用etcd IPv6群集

# ETCD_ENDPOINTS=http://[::1]:2379 calicoctl get bgppeers

检测配置文件

正确的设置将生成已注册节点的列表。如果返回了一个空列表,那么您要么指向了错误的数据存储,要么没有注册任何节点。如果返回错误,请尝试更正该问题,然后重试。
# calicoctl get nodes

参考文档

https://docs.tigera.io/calico/latest/operations/calicoctl/install

标签:calicoctl,string,kubernetes,示例,部署,API,etcd
From: https://www.cnblogs.com/wangguishe/p/17638113.html

相关文章

  • 云原生之使用Docker部署webos私有云盘
    (云原生之使用Docker部署webos私有云盘)一、webos介绍1.webos简介WebOS是一个支持多种存储,云端存储&协同办公新体验:如Windows11体验的私有云盘/企业网盘。完全支持私有化部署,存储安全可控、数百种文件格式在线预览、编辑和播放、轻松分享。高效协作,细粒度权限管控全平台客户端......
  • Calico 部署
    Calico部署方式Calico部署方式有两种:operator部署和清单方式部署。CalicooperatorCalico由operator安装,该operator负责管理Calico集群的安装、升级和一般生命周期。operator作为Deployment直接安装在集群上,并通过一个或多个自定义KubernetesAPI资源进行配置。Calicomanife......
  • ModemWMS部署
    官方源码&&部署参考https://gitee.com/modernwms/ModernWMS 最新源码下载https://gitee.com/modernwms/ModernWMS/repository/archive/master.zip 部署脚本如下(备注:官方部署文档有所缺陷,以下脚本已验证)#!/bin/bash#依赖部署sudoaptupdatesudoaptinstall-ynpmsudo......
  • 从0开始,Cloudreve开源云盘在centos7上部署,并可在外网访问(资料整合)
    全程我在网络上收集这些资料,太零碎了,每一个一看就会,一动手就废,而且很多都不能实现我白嫖的梦想我一个人折腾了快一周,现在可以正常访问手机电脑多端访问给个赞再走吧此处为没有公网IP(回去折腾你家宽带去,不知道可以去搜索如何获得)和域名的办法简单的说就是想完全白嫖的那种(甚至......
  • Streamlit项目: 轻松搭建部署个人博客网站
    文章目录1前言1.1探索Streamlit:轻松创建交互式应用1.2最全Streamlit教程专栏2我的个人博客网站已上线!2.1一个集成了智能中医舌诊-中e诊专栏的博客网站2.2前期准备2.3使用StreamlitCloud运行3知识点讲解3.1实现多页面:两种方案3.2代码讲解3.3实现步骤3.4完整代码4......
  • kuboard部署在k8s集群中
    kuboard部署在k8s集群中,yaml配置文件#catkuboard.yamlapiVersion:apps/v1kind:Deploymentmetadata:labels:app:kuboardname:kuboardspec:replicas:1selector:matchLabels:app:kuboardtemplate:metadata:labels:......
  • Weblogic集群部署
    Weblogic集群部署Weblogic包官方下载地址:https://www.oracle.com/cn/middleware/technologies/weblogic-server-downloads.html服务规划:我们使用2台设备进行搭建,其中一台设备上部署控制台管理节点和受管理节点,一台设备上只部署受管理节点该部署以RedHat7为例安装前准备(所......
  • kubeadm 部署的集群升级教程
    1、确定升级的集群版本,查看现有的集群版本kubectl getnodes2、执行如下命令确定升级的版本,目标版本是v1.27.4yumlist--showduplicateskubeadm--disableexcludes=kubernetes3、升级master节点,所有master节点都要操作,并升级完验证版本yuminstall-ykubeadm-1.27.4-0-......
  • AlphaPose 部署
    AlphaPose为开源项目。项目基于PyTorch深度学习框架,所以要安装PyTorch,一般来说把这两个教程看完,PyTorch就能成功安装了:搭建Pytorch环境(GPU版本,含CUDA、cuDNN),并在Pycharm上使用(零基础小白向)PyCharm与Anaconda超详细安装配置教程之后就是AlphaPose的本地部署,copy源码后一......
  • 基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程
    (基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程)1Jenkins是什么?学习官网:Jenkins官网,Jenkins中文官网;Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件;用Java语言编写的,可在Tomcat、Docker等流行的容器中运行,也可独立运行。......