calico客户端工具calicoctl

calico客户端工具calicoctl

Calico 是一个高性能的网络和网络安全解决方案,用于 Kubernetes 和其他容器平台。calicoctl 是 Calico 提供的命令行工具,允许用户管理和配置 Calico 的网络资源。

安装 calicoctl

1. 下载 calicoctl

您可以从 Calico 官方网站下载 calicoctl。以下是一个示例脚本,可以在 Linux 和 macOS 上下载 calicoctl

# 下载 calicoctl
curl -o calicoctl -O -L https://github.com/projectcalico/calico/releases/download/v3.28.0/calicoctl-linux-amd64

# 添加执行权限
chmod +x calicoctl

# 将 calicoctl 移动到您的 PATH 中的目录,例如 /usr/local/bin
sudo mv calicoctl /usr/local/bin/

# 验证安装
root@master1:~# calicoctl version
Client Version:    v3.28.0
Git commit:        413e6f559
Cluster Version:   v3.28.0
Cluster Type:      typha,kdd,k8s,operator,bgp,kubeadm

对于 Windows 用户,可以使用 PowerShell 进行下载:

Invoke-WebRequest -Uri https://github.com/projectcalico/calico/releases/download/v3.25.0/calicoctl-windows-amd64.exe -OutFile calicoctl.exe

# 将 calicoctl.exe 移动到您的 PATH 中的目录,例如 C:\Windows\System32
Move-Item calicoctl.exe C:\Windows\System32\

2. 配置 calicoctl

在使用 calicoctl 之前,需要将其配置为连接到 etcd 或 Kubernetes API 服务器。通过命令行配置运行:

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

以下是一个连接到 Kubernetes API 服务器为例,创建一个配置文件,例如 calicoctl.cfg

apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
  datastoreType: "kubernetes"
  kubeconfig: "/etc/kubernetes/admin.conf"

然后可以使用以下命令将配置文件路径导入环境变量:

export CALICOCTL_CFG=/path/to/calicoctl.cfg

除了自定义配置文件路径外,calicoctl默认加载 /etc/calico/calicoctl.cfg 配置文件读取配置信息,也可以将上述配置文件放到该路径下。

常用命令

以下是一些常用的 calicoctl 命令:

1. 查看节点信息

calicoctl get nodes

2. 创建和管理 IP 池

  • 创建 IP 池
cat <<EOF | calicoctl apply -f -
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: my-ippool
spec:
  cidr: 172.16.0.0/12
  ipipMode: Always
  natOutgoing: true
EOF
  • 查看 IP 池
calicoctl get ippools

# yaml格式输出
calicoctl get ipPool -o yaml
  • 删除 IP 池
calicoctl delete ippool my-ippool

3. 创建和管理全局网络策略

  • 创建全局网络策略
cat <<EOF | calicoctl apply -f -
apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
  name: allow-tcp-and-udp
spec:
  selector: all()
  ingress:
  - action: Allow
    protocol: TCP
    source:
      nets:
      - 192.168.0.0/16
  - action: Allow
    protocol: UDP
    source:
      nets:
      - 192.168.0.0/16
  egress:
  - action: Allow
    protocol: TCP
  - action: Allow
    protocol: UDP
EOF
  • 查看全局网络策略
calicoctl get globalnetworkpolicies
  • 删除全局网络策略
calicoctl delete globalnetworkpolicy allow-tcp-and-udp
全局网络策略实战

使用busybox创建2个pod:

# yaml文件
root@master1:~/ingress-nginx# cat busybox-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值