基于CentOS7安装kubesphere和Kubernetes并接入外部ES收集日志

一、修改所有节点主机名

主节点就修改成master

hostnamectl set-hostname master

然后输入bash刷新当前主机名

工作节点1就修改成node1

hostnamectl set-hostname node1

然后输入bash刷新当前主机名

二、全部节点安装依赖并同步时间

yum -y install socat conntrack ebtables ipset
    yum install ntpdate -y

    同步时间

    ntpdate time.windows.com  

    三、下载 KubeKey

    3.1 选择中国时区

    export KKZONE=cn

    3.2 执行以下命令下载 KubeKey

    curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.13 sh –

    注意:

    节点要求

    • 所有节点必须都能通过 SSH 访问。
    • 所有节点时间同步。
    • 所有节点都应使用 sudo/curl/openssl/tar

    3.3 为 kk 添加可执行权限

    chmod +x kk

    3.4 创建集群

    3.5 创建示例配置文件

    我这里kubesphere选了3.4.1版本,如果不指定 Kubernetes 版本,KubeKey 将默认安装 Kubernetes v1.23.10

    ./kk create config --with-kubernetes v1.23.0 --with-kubesphere v3.4.1 -f k8s/自定义文件名.yaml

    3.6 修改生成的yaml文件

    只修改主机名、IP地址、用户名密码,区分工作节点与主节点,其他不变

    3.7 运行以下命令安装集群

    ./kk create cluster -f k8s/文件名.yaml

    如果出现无法下载镜像包,那就配置一下dockers的加速器

    cat /etc/docker/daemon.json

    {
    
      "exec-opts": [
    
        "native.cgroupdriver=systemd"
    
      ],
    
      "registry-mirrors": [
    
        "https://docker.1ms.run",
    
        "https://docker.m.daocloud.io",
    
        "https://docker.1panel.top"
    
      ],
    
      "live-restore": true,
    
      "log-driver": "json-file",
    
      "log-opts": {
    
        "max-size": "500m",
    
        "max-file": "3"
    
      },
    
      "max-concurrent-downloads": 10,
    
      "max-concurrent-uploads": 5
    
    }

    重启dockers服务

    systemctl daemon-reload && systemctl restart docker

    最后出现这个就是装好了

    四、安装Elasticsearch收集pod日志

    4.1 服务器优化

    4.1.1、调整最大文件数到65535

    vi /etc/security/limits.conf
    * hard nofile 65535
    * soft nofile 65535

    通过ulimit -n命令查看

    4.1.2、修改vm.max_map_count

    修改/etc/sysctl.conf文件,再文件末尾加上

    vm.max_map_count=655360

    并执行sysctl -p,使修改文件部分生效。

    4.1.3、创建用户

    Elasticsearch不允许root用户启动,需要创建es专用账号

    groupadd elastic
    useradd elastic -g elastic
    #设置用户密码
    passwd elastic

    4.1.4创建数据目录

    mkdir -p /data/elastic/data
    mkdir -p /data/elastic/logs
    
    
    cd /data/elastic/
    #下载elasticsearch软件包;
    
    wget -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.0-linux-x86_64.tar.gz
    
    
    
    #tar解压elasticsearch软件包;
    
    tar -xzvf elasticsearch-7.17.0-linux-x86_64.tar.gz
    
    chown -R elastic:elastic /data/elastic

    安装jdk

    wget -c  https://download.oracle.com/otn/java/jdk/8u441-b07/7ed26d28139143f38c58992680c214a5/jdk-8u441-linux-x64.tar.gz?AuthParam=1740191829_6b95284f0978b16082f95c598ba9fc01

    解压到指定目录

    tar -zxvf jdk-8u441-linux-x64.tar.gz  -C /usr/local/

    配置jdk环境变量

    export JAVA_HOME=/usr/local/jdk1.8.0_441
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

    source /etc/profile

    切换用户

    su – elastic

    据服务器配置修改jvm.options中的Xms、Xmx

    我的服务器是32G

    这里修改jvm占用内存 ,例如修改为8g

    -Xms8g
    -Xmx8g

    注意把这两个参数的空格去掉,不然会报错4.1.5

    4.1.5 修改elasticsearch.yml配置文件

    配置相关信息并开启安全认证(可选,我取消证书认证了)

    cluster.name: 集群名
    
    node.name: node-1
    
    path.data: /data/elastic/data
    
    path.logs: /data/elastic/logs
    
    network.host: 0.0.0.0
    
    http.port: 9200
    
    discovery.seed_hosts: ["主机IP"]
    
    cluster.initial_master_nodes: ["node-1"]
    
    http.cors.enabled: true
    
    http.cors.allow-origin: "*"
    
    http.cors.allow-headers: Authorization
    
    ingest.geoip.downloader.enabled: false
    
    #开启安全认证配置(可选,我取消证书认证了)
    
    xpack.security.enabled: true
    
    xpack.security.transport.ssl.enabled: true
    
    xpack.security.transport.ssl.verification_mode: certificate
    
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

    如果是集群可以在任意节点生成证书(可选,我取消证书认证了)
    为Elasticsearch集群创建一个证书颁发机构。(可选,我取消证书认证了)

    bin/elasticsearch-certutil ca ,
    
    Please enter the desired output file [elastic-stack-ca.p12]: #这里直接回车即可
    Enter password for elastic-stack-ca.p12 : #这里直接回车即可,不要设置密码

    之后会看到新生成的文件 elastic-stack-ca.p12

    生成私钥(可选,我取消证书认证了)

    bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 

    下面三项直接回车即可:

    Enter password for CA (elastic-stack-ca.p12) : 
    Please enter the desired output file [elastic-certificates.p12]:
    Enter password for elastic-certificates.p12 : #这里直接回车即可,不要设置密码,否则后面ES会启动不了
    Certificates written to /……/elastic-certificates.p12

    设置完毕后,会在当前目录 下看到新生成的文件:elastic-certificates.p12

    创建文件夹certs放置私钥(可选,我取消证书认证了)

    mkdir config/certs
    cp elastic-certificates.p12 config/certs
    如果是集群,将生成的证书拷贝到其他节点的相同目录即可。
    
    启动es
    
    bin/elasticsearch  (初次不加-d 静默启动,便于观察日志)

    可以看到除了有些告警以外,es可以正常启动

    然后设置密码

    [elastic@server elasticsearch-7.17.0]$ bin/elasticsearch-setup-passwords interactive
    
    warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
    
    Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_441/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
    
    Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
    
    You will be prompted to enter passwords as the process progresses.
    
    Please confirm that you would like to continue [y/N]y
    
    
    
    
    
    Enter password for [elastic]:
    
    Reenter password for [elastic]:
    
    Enter password for [apm_system]:
    
    Reenter password for [apm_system]:
    
    Enter password for [kibana_system]:
    
    Reenter password for [kibana_system]:
    
    Enter password for [logstash_system]:
    
    Reenter password for [logstash_system]:
    
    Enter password for [beats_system]:
    
    Reenter password for [beats_system]:
    
    Enter password for [remote_monitoring_user]:
    
    Reenter password for [remote_monitoring_user]:
    
    Changed password for user [apm_system]
    
    Changed password for user [kibana_system]
    
    Changed password for user [kibana]
    
    Changed password for user [logstash_system]
    
    Changed password for user [beats_system]
    
    Changed password for user [remote_monitoring_user]
    
    Changed password for user [elastic]

    按个人需求输入密码即可。

    ES中内置的用户:

    • elastic 账号:拥有 superuser 角色,是内置的超级用户。
    • kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
    • logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
    • beats_system账号:拥有 beats_system 角色。用户 Beats 在 Elasticsearch 中存储监控信息时使用。
    • elastic是超级用户,它可以做任何事情

    4.1.6 验证ES是否正常

    curl -XGET --user elastic:elastic  http://节点IP:9200/_cluster/health?pretty

    将kubesphere默认的日志接收器换成外部ES

    在定制资源定义中找到 ClusterConfiguration ---ks-installer配置文件截图

    修改es部分保存即可

    修改OutPut部分

    1. 这个文件不支持显示明文用户密码,所以需要先创建secret保存用户密码

    kubectl create secret generic elasticsearch-credentials --from-literal=username=elastic --from-literal=password=elastic -n kubesphere-logging-system -v=8

    1. 修改修改OutPut文件

    key: username  # 使用 Secret 中的键名

    name: elasticsearch-credentials  # 确保密钥名称正确

    key: password  # 使用 Secret 中的键名

    name: elasticsearch-credentials  # 确保密钥名称正确

    然后查看fluent-bit的pod是否将日志推送到外部ES,并且kubesphere是否能正常显示ES收集的日志

    我这已经成功使用外部ES收集并显示日志

    注意ES配置证书后,kubesphere访问有点麻烦,所以我的ES取消证书认证了,只配置了密码

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

    如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

    相关文章

    halcon 条形码、二维码识别、opencv识别

    一、条形码 函数介绍 create_bar_code_model * 1.创建条码读取器的模板 * 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空 * 参数二:针对条形码模型进行调整 * 参数三:条形码模型的句柄。 create_bar_code_model (…

    【用deepseek和chatgpt做算法竞赛】——还得DeepSeek来 -Minimum Cost Trees_5

    往期 【用deepseek和chatgpt做算法竞赛】——华为算法精英实战营第十九期-Minimum Cost Trees_0:介绍了题目和背景【用deepseek和chatgpt做算法竞赛】——华为算法精英实战营第十九期-Minimum Cost Trees_1:题目输入的格式说明,选择了邻接表…

    红帽7基于kickstart搭建PXE环境

    Kickstart 文件是一种配置文件,用于定义 Linux 系统安装过程中的各种参数,如分区、网络配置、软件包选择等。system-config-kickstart 提供了一个图形界面,方便用户快速生成这些配置文件。 用户可以通过图形界面进行系统安装的详细配置&…

    【Linux网络】TCP/IP地址的有机结合(有能力VS100%???),IP地址的介绍

    目录 1.背景知识(更好的理解TCP/IP的结合) 1.1远距离的传输要经过很多的子网,很多的路由器 1.2IP在OSI标准的网络层 1.3路由器的多个IP 2.TCP和IP的有机结合 2.1IP确定怎么选择路径,数据链接就是具体的实现 2.2问题背景&am…

    ue5 Arch vis AI traffic system 车辆系统添加不同种类的车

    一、前置条件 资源包拥有二、步骤 添加第二辆车 在父级蓝图底下创建子级蓝图 打开子级蓝图 替换骨骼网格体 创建动画蓝图,骨骼选择该骨骼网格体的骨骼 连接动画蓝图 添加动画蓝图 添加资源包

    3分钟idea接入deepseek

    DeepSeek简介 DeepSeek 是杭州深度求索人工智能基础技术研究有限公司开发的一系列大语言模型,背后是知名量化资管巨头幻方量化3。它专注于开发先进的大语言模型和相关技术,拥有多个版本的模型,如 DeepSeek-LLM、DeepSeek-V2、DeepSeek-V3 等&…

    ChatGPT平替自由!DeepSeek-R1私有化部署全景攻略

    一、DeepSeek-R1本地部署配置要求 (一)轻量级模型 ▌DeepSeek-R1-1.5B 内存容量:≥8GB 显卡需求:支持CPU推理(无需独立GPU) 适用场景:本地环境验证测试/Ollama集成调试 (二&a…

    搭建 Hadoop 3.3.6 伪分布式

    搭建 Hadoop 3.3.6 伪分布式 IP 192.168.157.132 初始化操作 更改yum源 # 1_1.安装Wget yum install wget# 1_2.备份CentOS-Base.repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak# 2.下载阿里yum源配置 wget -O /etc/yum.repos.d/Cen…

    nodejs:vue 3 + vite 作为前端,将 html 填入<iframe>,在线查询英汉词典

    向 doubao.com/chat/ 提问: node.js js-mdict 作为后端,vue 3 vite 作为前端,编写在线查询英汉词典 后端部分(express js-mdict ) 详见上一篇:nodejs:express js-mdict 作为后端&#xff…

    计算机网络真题练习(高软29)

    系列文章目录 计算机网络阶段练习 文章目录 系列文章目录前言一、真题练习总结 前言 计算机网络的阶段练习题,带解析答案。 一、真题练习 总结 就是高软笔记,大佬请略过!

    医疗AI领域中GPU集群训练的关键技术与实践经验探究(下)

    五、医疗 AI 中 GPU 集群架构设计 5.1 混合架构设计 5.1.1 参数服务器与 AllReduce 融合 在医疗 AI 的 GPU 集群训练中,混合架构设计将参数服务器(Parameter Server)与 AllReduce 相结合,能够充分发挥两者的优势,提升训练效率和模型性能。这种融合架构的设计核心在于根…

    @Configuration与 @Component的差异

    继承关系 Configuration确实可以视为Component的派生注解。从源码层面来看,Configuration本身通过元注解方式标记了Component,这意味着所有被Configuration注解的类本质上也会被Spring识别为组件(Component)。这种设计使得Config…

    c++入门-------命名空间、缺省参数、函数重载

    C系列 文章目录 C系列前言一、命名空间二、缺省参数2.1、缺省参数概念2.2、 缺省参数分类2.2.1、全缺省参数2.2.2、半缺省参数 2.3、缺省参数的特点 三、函数重载3.1、函数重载概念3.2、构成函数重载的条件3.2.1、参数类型不同3.2.2、参数个数不同3.2.3、参数类型顺序不同 前言…

    Deepseek首页实现 HTML

    人工智能与未来:机遇与挑战 引言 在过去的几十年里,人工智能(AI)技术取得了突飞猛进的发展。从语音助手到自动驾驶汽车,AI 正在深刻地改变我们的生活方式、工作方式以及社会结构。然而,随着 AI 技术的普及…

    20250223学习记录

    之前HDFview查看.hdf5文件的时候,看到土壤湿度数据是分为AM和PM,当时我有一个这样的疑问 但是后来用Python处理的时候,直接就是对整个的.hdf5文件处理,当时没有注意这一块,所以就没有这个疑问了。 今天突然看到一篇论…

    Rust编程语言入门教程 (七)函数与控制流

    Rust 系列 🎀Rust编程语言入门教程(一)安装Rust🚪 🎀Rust编程语言入门教程(二)hello_world🚪 🎀Rust编程语言入门教程(三) Hello Cargo&#x1f…

    C++的allactor

    https://zhuanlan.zhihu.com/p/693267319 1 双层内存配置器 SGI设计了两层的配置器,也就是第一级配置器和第二级配置器。同时为了自由选择,STL又规定了 __USE_MALLOC 宏,如果它存在则直接调用第一级配置器,不然则直接调用第二级配…

    DeepSeek R1/V3满血版——在线体验与API调用

    前言:在人工智能的大模型发展进程中,每一次新模型的亮相都宛如一颗投入湖面的石子,激起层层波澜。如今,DeepSeek R1/V3 满血版强势登场,为大模型应用领域带来了全新的活力与变革。 本文不但介绍在线体验 DeepSeek R1/…

    forge-1.21.x模组开发(二)给物品添加功能

    功能效果 创建一个兑换券,当使用兑换券对着兑换机右键时,获得一条烤鱼 创建兑换券 创建ExchangeCouponsItem.java,继承Item,定义兑换券内容 public class ExchangeCouponsItem extends Item {public ExchangeCouponsItem(Prop…

    NIO-Reactor模型梳理与demo实现

    关于NIO,我们在上一篇 linux下网络编程socket&select&epoll的底层实现原理 就介绍了网络阻塞IO、以及基于事件驱动的非阻塞IO。对于NIO的API基本使用是java提供的接口,然后我们在业务上对NIO的使用,也是有不同的使用方法的。然后在我…