k8s series初级calico使用介绍

目录
  • calico简介
    • calico是什么?
    • calico优点
    • calico安装
    • calico组件

calico简介

calico是什么?

Calico 是一个开源网络和网络安全解决方案,适用于容器、虚拟机和基于主机的本地工作负载。Calico支持广泛的平台,包括 Kubernetes、OpenShift。

无论使用Calico的eBPF数据平面还是 Linux 的标准网络管道,Calico都能提供极快的性能和真正的云原生可扩展性

Calico支持公有云和本地运行,支持在单个节点或数千个节点集群中运行

calico优点

  • 支持linux eBPF数据通道,标准的linux网络数据通道,还支持windows HNS数据通道
  • 丰富的网络策略,内置对wireguard加密支持,保护pod-pod数据安全
  • Calico使Linux eBPF或Linux内核高度优化的标准网络管道来提供高性能网络
  • Calico的控制平面和策略引擎做了很好的调整,使占用和使用cpu率最小化
  • 支持超级可扩展性,满足几十节点,到十千个节点的伸缩
  • 支持L2,L3层网络
  • 不对数据进行解包压包,不需要nat和端口映射,性能强悍

calico安装

将calico安装在kubenetes集群中有很多种方式,这里选择一种比较方便的yaml文件方式

#3.20版本只支持1.19 1.20  1.21
#版本之间可能不兼容,具体细节需要查看官网说明
wget  https://docs.projectcalico.org/v3.20/manifests/calico.yaml
kubectl apply -f calico.yaml
#查看已部署的caclico,默认情况是一个calico控制器和N个calico node
kubectl get pods -A -o wide| grep calico

默认安装的calico,管理的节点不超过50个,且数据存储交由kubenetes api负责,数据真实还是存在etcd中

calico组件

  • Felix: agent进程,以DaemonSet方式安装在每个节点,负责网络接口管理,路由,ARP,ACL的管理,状态上报,同步等
  • calico-controller: calico控制器,监听和变更来源于kubernetes的资源
  • calicoctl:calico的cli工具,方便对calico排错
  • typha: 大于50个节点,使用typha代替apiServer来和ectd交互
  • bird: 从Felix获取路由并分发到网络上的 BGP对等点,以进行主机间路由。在托管 Felix 代理的每个节点上运行,是路由的守护进程
  • confd: 监视Calico的存储,以便查看BGP配置和全局缺省值进行更新。
  • Datastore plugin: 通过减少每个节点对数据存储的影响来增加规模,是Calico CNI插件之一
  • IPAM plugin: 使用 Calico的IP池资源来控制如何将 IP 地址分配给集群中的豆荚。 Calico 默认CNI插件
  • etcd: 分布式键值存府,主要负责网络无数据一致性,确保calico网络状态的准确性,默认情况共用k8s集群的etcd

以上就是k8s series初级calico使用介绍的详细内容,更多关于k8s series初级calico的资料请关注我们其它相关文章!

时间: 2022-06-21

.NET项目在k8s中运行的Dapr持续集成流程

目录 流程选择 项目结构 dapr.yaml Dockerfile Pipelines 持续集成的配置文件 Release 发布流程配置文件 其它流程 注:本文中主要讨论 .NET6.0项目在 k8s 中运行的 Dapr 的持续集成流程, 但实际上不是Dapr的项目部署到K8s也是相同流程,只是k8s的yaml配置文件有所不同 流程选择 基于 Dapr 的项目持续集成包含以下流程 编译并打包项目 构建 Dockerfile,并推送镜像push image至私有仓库 准备 k8s 部署的配置文件

解决国内k8s的ingress-nginx镜像无法正常pull拉取问题

一.问题描述 我们期望运行Ingress就必须给我们的集群创建Ingress controller 目前官方推荐的controller有:[目前支持和维护 AWS, GCE 和 nginx Ingress 控制器] https://kubernetes.io/zh/docs/concepts/services-networking/ingress-controllers/ 我们使用nginx控制器,其官网给出的配置方法如下:https://kubernetes.github.io/ingress

K8s准入控制Admission Controller深入介绍

目录 K8s 的准入控制器是什么 K8s 中的请求处理流程 什么是准入控制器(Admission Controller) 为什么需要准入控制器 Admission Controller 准入控制器 动态准入控制器 使用条件 Admission Webhook 是什么 如何部署 Admission Webhook 总结 在我之前发布的文章 <云原生时代下的容器镜像安全>(系列)中,我提到过 Kubernetes 集群的核心组件 -- kube-apiserver,它允许来自终端用户或集群的各组件

阿里云k8s服务springboot项目应用升级时出现502错误

随着小步快跑.快速迭代的开发模式被越来越多的互联网企业认同和采用,应用的变更.升级频率变得越来越频繁.为了应对不同的升级需求,保证升级过程平稳顺利地进行,诞生了一系列的部署发布模式. 停机发布 - 把老版的应用实例完全停止,再发布新的版本.这种发布模式主要为了解决新老版本互不兼容.无法共存的问题,缺点是一段时间内服务完全不可用. 蓝绿发布 - 在线上同时部署相同数量的新老版本应用实例.待新版本测试通过后,将流量一次性地切到新的服务实例上来.这种发布模式解决了停机发布中存在的服务完全不可用问题,但

Rancher通过界面管理K8s平台的图文步骤详解

目录 一.Rancher 简介 1.Rancher API Server 的功能 2.Rancher 主要组件和功能图示 二.Rancher 安装 1.通过 Docker 来进行安装 2.在 Rancher 的界面上绑定 K8s 3.在 Rancher 上部署应用 一.Rancher 简介 Rancher 是为使用容器的公司打造的容器管理平台,通过 Rancher,企业不再需要使用一系列开源软件从零开始构建一个容器服务平台.同时 Rancher 还提供了一个全栈容器部署和管理平台,用于管理 Do

教你在k8s上部署HADOOP-3.2.2(HDFS)的方法

环境+版本k8s: v1.21.1hadoop: 3.2.2 dockerfile FROM openjdk:8-jdk # 如果要通过ssh连接容器内部,添加自己的公钥(非必须) ARG SSH_PUB='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3nTRJ/aVb67l1xMaN36jmIbabU7Hiv/xpZ8bwLVvNO3Bj7kUzYTp7DIbPcHQg4d6EsPC6j91E8zW6CrV2fo2Ai8tDO/rCq9Se/64F3+8oEI

CKAD认证中部署k8s并配置Calico插件

预设网络 Calico(https://github.com/projectcalico/calico) 是针对容器.虚拟机和裸机工作负载的开源网络和安全解决方案,它提供了 pod 之间的网络连接和网络安全策略实施. 读者可参考 https://kubernetes.io/zh/docs/concepts/cluster-administration/networking/ 这里不做过多的说明. 执行 ip addr 命令,找到 ens4,把里面提到的 ip 记录下来. ens4: <BROAD

浅谈JavaWeb中的web.xml配置部署描述符文件

1. 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码. DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义). 所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-App和WEB-APP

在CentOS中部署多节点Citus集群的详细步骤

前言 本文主要介绍了关于CentOS中部署多节点Citus集群的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.在所有节点执行以下步骤 Step 01 添加Citus Repostory # Add Citus repository for package manager curl https://install.citusdata.com/community/rpm.sh | sudo bash Step 02 安装Citus并且初始化DB # install

Ubuntu系统中部署Vagrant和VirtualBox的图文教程

一.前言 1.Vagrant是一个搭建完整的虚拟开发环境的工具 2.实验环境 在Win10中利用VMWare Workstation创建一台Ubuntu虚拟机,版本为64位Ubuntu Desktop 16.04,4核,4G内存:然后在Ubuntu中安装Vagrant和VirtualBox,所用到的Vagrant和VirtualBox版本都是截至2018/04/08时候的最新版. 之所以使用VMWare Workstation来创建Ubuntu的虚拟机而不是VirtualBox,跟下面即将说到的

在Tomcat中部署Web项目的操作方法(必看篇)

在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Manager Web应用程序 一:部署解包的webapp目录 将Web项目部署到Tomcat中的方法之一,是部署没有封装到WAR文件中的Web项目.要使用这一方法部署未打包的webapp目录,只要把我们的项目(编译好的发布项目,非开发项目)放到Tomcat的webapps目录下就可以了.如下图所示: 这时,打开Tomcat服务器(确保服务器打开),就可以在浏览器访问我们的项目了,如下

详解Spring Boot 部署与服务配置

spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat.weblogic等等),当然在此之前你要对程序入口做简单调整. 项目构建我们使用Maven或Gradle,这将使项目依赖.jar包管理.以及打包部署变的非常方便. 一.内嵌 Server 配置 Spring Boot将容器内置后,它通过配置文件

django中的setting最佳配置小结

Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运行,python可以搜索到.如果需要运行在其他服务器上,就必须指定DJANGO_SETTINGS_MODULE变量. 2.默认设定 一个django的settings文件不需要我们手动去设置所有项目,因为系统已经默认设置好了.我们只需要修改我们使用的设 定就好了.默认的设置在django/conf/

在CentOS中安装Rancher2并配置kubernetes集群的图文教程

准备 一台CentOS主机,安装DockerCE,用于安装Rancher2 一台CentOS主机,安装DockerCE,用于安装kubernetes集群管理主机 多台CentOS主机,安装DockerCE,用于运行kubernetes工作节点,工作节点需要与集群管理主机在同一个子网中 掌握Docker常用操作,了解K8s基本原理 安装Rancher2 第一步:执行命令,运行Rancher2,绑定主机端口80和443. docker run -d --restart=unless-stopped

vue-cli3中vue.config.js配置教程详解

前言 vue-cli3推崇零配置,其图形化项目管理也很高大上. 但是vue-cli3推崇零配置的话,导致了跟之前vue-cli2的配置方式都不一样了. 别名设置,sourcemap控制,输入文件位置和输出文件位置和输出的方式,压缩js控制,打包webapck日志分析,externals忽略配置(外部引入),调试的端口配置,proxy接口配置等等的. 有时候还需要我们配置的,因为官方推荐的,并不适用于我们平时的开发所用的. 所以,我的vue.config.js配置是下面这样的.还有一个改hash的

在Docker中部署Confluence和jira-software的方法步骤

version: centos==7.2 jdk==1.8 confluence==6.15.4 jira-software==8.2.1 docker==18.09 安装前提示: 1. 需要准备2个数据库,因为confluence和jira-software的mysql配置要求不一样     2. confluence需要配置jdk,jira-software自带jdk 选择使用docker部署的原因: 1. confluence和jira-software环境需求不同,需要分开配置.    

Django使用uwsgi部署时的配置以及django日志文件的处理方法

首先保证你有一个可运行的django工程 然后在虚拟环境里面安装好uwsgi pip install uwsgi 配置nginx的服务如下 server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; server_name _; location / { try_files $uri $uri/ =404; } location /account { include uwsgi_par