Cilium-实战系列-(一)Cilium-安装与部署

news2024/10/6 10:19:12

        

        前言:

        1、首先说一下这篇实战系列Cilium-ebpf系列文章为 “一文一武”,一个注重点解,一个注重实际操作。

Cilium + ebpf 系列文章-什么是ebpf?(一)_clium ebpf-CSDN博客文章浏览阅读419次。一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。3、当你执行l s操作时,会调用open的系统调用,然后open的系统调用具体是使用do_sys_open这个内核函数来具体执行!##上面的实验是为了证明你在用户空间编写的ebpf程序可以在内核中运行,并且监控系统调用和内核函数。这篇非常非常干,很有可能读不懂。_clium ebpfhttps://blog.csdn.net/weixin_46510209/article/details/142464176?spm=1001.2014.3001.5501        2、今天这篇文章两个重点:

                1、安装符合部署Cilium的RKE集群。

                2、部署Cililum到RKE集群中。

                3、并且运行测试且通过。

一、部署环境

                1、准备3台虚拟机(也可以是两台)

                2、Linux- OS 内核版本必须是5.0以上,推荐Opensuse 15.5 leap

                3、两台虚拟机之间网络可达且没有安全限制策略。

                4、两台虚拟机安装docker 20.0X版本以上(因为使用的是rke集群)

                5、关闭防火墙。(云内的虚拟机开防火墙等于脱裤子放屁哈,有分布式防火墙开开就可以了。)

二、我的环境展示

                1、主机名

        rke-01         rke-02         rke-03

        (192.168.91.100         192.168.91.101         192.168.91.102)

                2、规划

        rke-01  rke-02  为Cluster A rke01-为控制面,rke02-为工作面

        rke-03 为All in one 即是控制面也为工作面。

                3、OS  

*下载地址:

https://get.opensuse.org/leap/15.6/


                4、内核

                5、docker版本

*下载地址:

https://docs.docker.com/get-started/get-docker/


        6、rke

*下载地址:

https://rke.docs.rancher.com/installation

        7、cilium   

helm地址:

cilium	https://helm.cilium.io/

        8、Kubernetes

        

        9、Cilium-CLi

            

*下载地址-:

https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/

三、操作过程

        1、 安装符合部署Cilium的RKE集群。

                        1、CPU架构-内核要求

        *必须是64位的CPU。

        *且OS的内核版本必须大于等于5.4

        *以上是建议的OS版本号。

                2、经过验证测试的k8s版本号

                3、安装rke集群参考下面我另外一篇博客

Rancher-RKE-install 部署k8s集群_rancher 重新部署 rke-CSDN博客文章浏览阅读1.4k次。请注意:一定要检查你ssh的用户是否具备使用docker的权限,而且一定要启动docker.SSH第一个是集群配置的path位置,如果没有指定每个主机的私钥路径或者私钥的内容,则默认使用集群的配置.,表示成功部署集群,可以开始使用集群。在创建 Kubernetes 集群的过程中,会创建一个。5.根据当前目录的上下文中的cluster.yaml 安装rke集群。你运行的主机需要具备ssh免密登录其他主机的能力。1.下载Rancher-Rke的二进制包-下面是项目的地址。1.CNCF认证的k8s安装程序。_rancher 重新部署 rkehttps://blog.csdn.net/weixin_46510209/article/details/132356167?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522B52156FB-A26F-4B85-956F-F6AB76631638%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=B52156FB-A26F-4B85-956F-F6AB76631638&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-132356167-null-null.nonecase&utm_term=rke&spm=1018.2226.3001.4450

                4、部署rke的cluster.yaml文件重点设置

        请注意需要设置: 

        

        2、安装Cilium with helm

                1、我们可以通过cilium-cli来安装集群也可以通过helm来安装cilium,这里选择helm.cilium作为调试和排除工具还可以,作为安装工具不怎么好用。

helm repo add cilium	https://helm.cilium.io/

                2、然后把helm包拉取下来修改

helm pull cilium/cilium --version 1.16.2

                3、修改包的values.yaml

        这里说一下:

        1、默认安装的cilium是用的vxlan然后通过8472端口,各个node之间打通过隧道。

        *我修改了默认端口,因为我玩的是何晨光的vxlan.

        2、节点的地址池默认是cluster pool,由cilium统一分配一个大掩码,然后各个节点分配16位小掩码分配pod.

*集群范围IPAM模式将每个节点的PodCIDR分配给每个节点,并在每个节点上使用主机范围分配器分配IP

        3、且不完全替换kube-proxy,kube-proxy保留Cluster-ip能力,但丧失nodeport能力。故我们就用ebpf映射来完全替换kube-proxy.

        4、helm安装命令
API_SERVER_IP=<your_api_server_ip>
# Kubeadm default is 6443
API_SERVER_PORT=<your_api_server_port>
helm install cilium cilium/cilium --version 1.16.2 \
    --namespace kube-system \
    --set kubeProxyReplacement=true \
    --set k8sServiceHost=${API_SERVER_IP} \
    --set k8sServicePort=${API_SERVER_PORT}

        *如果你喜欢用配置文件来部署下面这个命令也可以:

helm install cilium -n kube-system -f ./values.yaml .

3、验证安装

这里需要说一下,当你通过helm install cilium后,到底发生了什么?部署了什么?它们干什么用的?

        

*如图:

        1、cilium 是部署在每个节点的守护进程也就是agent.

                1、配套一个configmap.里面是agent配置文件。

                2、sa,配套的sa

        2、Envoy

        检查上面的configmap,如果下面的字段是:"true",那么就会自动部署一个ds envoy.

enable-l7-proxy: "true"

        *这个大家就是熟悉了吧,就是以前插入到pod到saidcar网络容器。

        *不过现在cilium用它来做节点的L7路由。

扩展一下好处:

        3、cilium-operator

        *这个没啥说的,如果对operator的概念没理解到位可以看下我的这篇博客。

几句话明白什么是Kubernetes Operator?_数据库 operator-CSDN博客文章浏览阅读416次,点赞10次,收藏2次。答案肯定是不知道的,这个时候就需要人工干预,这个人就是操作员,也就是Operator。1、要实现软件Operator层面,Kubernetes本身的api是不能够完成这类任务的,因为Kubernetes不可能存储所有应用的控制生命周期的知识。3、那么Kubernetes设计之初就说我们是一个自动化、减少人工干预的、自动修复平台,是不是优点问题。1、有状态应用,比如数据库、复杂的集群系统(ELK),本身有选举、同步等机制的应用程序。3、这些被单独定义的CRD就是Operator的具体控制生命周期的“知识”。_数据库 operatorhttps://blog.csdn.net/weixin_46510209/article/details/139610912?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522AC684D49-0E95-41F4-86D3-4B974510AF71%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=AC684D49-0E95-41F4-86D3-4B974510AF71&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-139610912-null-null.nonecase&utm_term=operator&spm=1018.2226.3001.4450

        1、通过cilium-cli验证安装

cilium status

        2、检查节点是否ready

        3、部署一个应用来测试Pod-Svc联通性。

                1、部署测试应用
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
                2、使用Nodeport暴露 
kubectl expose deployment my-nginx --type=NodePort --port=80
                3、获取Nodeport端口
node_port=$(kubectl get svc my-nginx -o=jsonpath='{@.spec.ports[0].nodePort}')
                4、测试
curl 127.0.0.1:$node_port

curl <your node ip>:$node_port

curl <your cluster ip>:$node_port

四、总结

        1、这篇文章使用rke搭建了一个符合cilium要求的1个集群,另外1个集群安装流程就跳过了。

        2、到此我们完成了集群的搭建以及联通性测试。

        3、下篇文章会通过一个简单的应用来测试Cilium的一些高级特性。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2191658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】Hypercorn:轻量级的异步ASGI/WSGI服务器

Hypercorn 是一个支持异步 ASGI 和同步 WSGI 应用的高效 Python 服务器。它结合了现代协议支持&#xff08;包括 HTTP/1、HTTP/2 和 HTTP/3&#xff09;&#xff0c;并且为异步 Web 框架&#xff08;如 FastAPI 和 Quart&#xff09;提供了卓越的性能和灵活性。通过 Hypercorn&…

2.创建第一个MySQL存储过程(2/10)

引言 在现代数据库管理中&#xff0c;存储过程扮演着至关重要的角色。它们是一组为了执行特定任务而编写的SQL语句集合&#xff0c;这些语句被保存在数据库中&#xff0c;并且可以被多次调用执行。存储过程不仅可以提高数据库操作的效率&#xff0c;还能增强数据的安全性和一致…

来自德国的义齿雕刻机电主轴SycoTec 4033

在口腔医学的精密世界中&#xff0c;每一次技术的飞跃都意味着患者体验与治疗效果的双重提升。随着数字化、自动化技术的蓬勃发展&#xff0c;义齿加工领域正经历着前所未有的变革&#xff0c;而德国SycoTec公司推出的4033高速电主轴卓越的性能和广泛的应用性&#xff0c;提升了…

计算机毕业设计 网上体育商城系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Python第三方库选择与使用陷阱避免

Python第三方库选择与使用陷阱避免 Python 生态系统丰富多样&#xff0c;其中的第三方库提供了许多强大的功能&#xff0c;使得开发者可以快速构建应用。然而&#xff0c;随着第三方库的增多&#xff0c;如何选择合适的库并避免一些常见的使用陷阱成为了开发者需要关注的重点。…

ChatGPT Canvas:交互式对话编辑器

自两年前 ChatGPT 发布以来&#xff0c;主流 AI 均以对话形式进行交互。传统的对话式界面可以直观看到反馈结果&#xff0c;但在需要深度编辑和协作的项目中就略显局限。为了解决此问题&#xff0c;几个月前 Claude 就发布过 Artifacts 功能&#xff0c;用来拓展原有对话。而现…

ROS C++ : 通过 ROS Service 实现进程间同步函数调用

文章目录 1、基本概念1.1、官方定义1.2、Service服务与Topic话题的区别 2、C 代码编写2.1、自定义 .srv 文件2.2、C 服务端代码编写2.3、C 客户端代码编写2.4、CMakeLists.txt 文件编写2.5、package.xml文件编写 3、编译运行3.1、执行 catkin_make 编译程序3.2、执行 source 部…

爬虫——XPath基本用法

第一章XML 一、xml简介 1.什么是XML&#xff1f; 1&#xff0c;XML指可扩展标记语言 2&#xff0c;XML是一种标记语言&#xff0c;类似于HTML 3&#xff0c;XML的设计宗旨是传输数据&#xff0c;而非显示数据 4&#xff0c;XML标签需要我们自己自定义 5&#xff0c;XML被…

计算机网络——ftp

在网络通信中&#xff0c;控制连接和数据连接是两种不同类型的连接&#xff0c;它们各自具有特定的功能和用途。 一、控制连接 定义与功能&#xff1a; 控制连接主要用于在通信双方之间传输控制信息&#xff0c;以建立、维护和终止数据连接。它负责协调和管理数据传输的过程&am…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-04 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-04目录1. LLM-Augmented Symbolic Reinforcement Learning with Landmark-Based Task Decomposition摘要研究背景问题与挑战如何…

如何用python抓取豆瓣电影TOP250

1.如何获取网站信息&#xff1f; &#xff08;1&#xff09;调用requests库、bs4库 #检查库是否下载好的方法&#xff1a;打开终端界面&#xff08;terminal&#xff09;输入pip install bs4, 如果返回的信息里有Successfully installed bs4 说明安装成功&#xff08;request…

【JavaEE】——文件IO的应用

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;文件的搜索&#xff08;面试高频&#xff09; 二&#xff1a;文件的复制 三&#xff1a…

森林火灾的预防方案

对于森林火灾的预防&#xff0c;我们需要了解森林火灾形成的原因。一般来森林火灾的形成分为自然原因和人为原因&#xff1b;自然原因多为干燥天气的自燃、雷电火等&#xff0c;而人为原因多是农、林、牧业生产用火&#xff0c;林副业生产用火&#xff0c;以及工矿运输生产用火…

无人机(自组穿越机,航模)-芯片选型

飞控MCU: 型号尺寸子型号参数规格备注STM325*532位ARM Cortex-M3 CPU&#xff0c;72MHz&#xff0c;256KB Flash&#xff0c;20KB RAMLQFP 48F33*332位ARM Cortex-M4 CPU&#xff0c;72MHz&#xff0c;256KB Flash&#xff0c;40KB RAMMPU6050F45*532位ARM Cortex-M4 CPU&…

分享我“Excel 表格”关键字的博客笔记(python脚本全程自动)

Python脚本全程自动&#xff0c;全部Python内建工具脚本纯净。 (笔记模板由python脚本于2024年10月05日 19:51:06创建&#xff0c;本篇笔记适合喜欢Excel和Python的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大…

MQ(仅供自己参考)

同步通讯的优缺点&#xff1a; 优点&#xff1a;时效高&#xff0c;数据一致&#xff0c;过程简单 缺点&#xff1a;耦合度高。性能下降。CPU等待资源的浪费。级联失败。 2、异步通讯&#xff1a;异步调用常见的实现就是事件驱动模式 异步的优缺点&#xff1a; 优点&#xf…

隐喻的使用及误用

Larry Constantine 著&#xff0c;whoisred 译 长期以来&#xff0c;在图形用户界面设计中&#xff0c;隐喻&#xff08;metaphor&#xff09;一直很流行。但是&#xff0c;虽然有少数简单的隐喻——如文件夹及垃圾箱——令人击节叫好&#xff0c;可事实上&#xff0c;大多数隐…

去噪扩散模型

Denoising Diffusion Probabilistic Models 图像扩散模型是一种生成模型&#xff0c;它基于概率扩散过程来生成新的图像。 核心步骤包括&#xff1a;&#xff08;1&#xff09;前向扩散过程&#xff1b;&#xff08;2&#xff09;逆向扩散过程 前向扩散过程&#xff08;正向过…

第十五周:机器学习笔记

第十五周周报 摘要Abstract一、机器学习1. 各式各样神奇的自注意力机制1.1 Local Attention/Truncated Attention&#xff08;截断注意力机制&#xff09;1.2 Stride Attention&#xff08;跨步注意力机制&#xff09;1.3 Global Attention&#xff08;全局注意力机制&#xff…

Jenkins pipeline配置示例

前提条件&#xff1a;已经安装Jenkins并能正常启动 如果Jenkins安装启动遇到问题可以参考&#xff1a; 1.创建pipeline 点击新建项目&#xff1a; 输入名称&#xff0c;选择pipeline&#xff1a; 进入配置页面&#xff0c;如果要配置GitHub Webhook要勾选&#xff1a;<fo…