flink on k8s

news/2025/1/15 15:00:55/

1.修改host文件

vi /etc/hosts

添加如下内容 这样搭集群的时候就不用记ip了

#::1	localhost	localhost.localdomain	localhost6	localhost6.localdomain6127.0.0.1	localhost	localhost.localdomain	localhost4	localhost4.localdomain4
165.154.221.97 tlb-001 k8s01 k8s-master-01
165.154.187.67 tlb-002 k8s02 k8s-master-02
165.154.104.175 tlb-003 k8s03 k8s-node-01
123.58.199.75 tlb-004 k8s04 k8s-node-02
165.154.105.68 tlb-005 k8s05 k8s-vip

2.配置免密登录

每台机器上都执行 

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub k8s01

ssh-copy-id -i ~/.ssh/id_rsa.pub k8s02

ssh-copy-id -i ~/.ssh/id_rsa.pub k8s03

ssh-copy-id -i ~/.ssh/id_rsa.pub k8s04

ssh-copy-id -i ~/.ssh/id_rsa.pub k8s05

3.多机器批量执行脚本编写并使用

#!/bin/bash

# 检查参数数量
if [ "$#" -ne 2 ]; then
    echo "用法: $0 '主机列表' '命令列表'"
    echo "示例: $0 'k8s01 k8s02 k8s03 k8s04 k8s05' 'cd /aaa/bbb;mkdir ccc'"
    exit 1
fi

# 获取参数
HOSTS=$1
COMMANDS=$2

# 将主机列表转换为数组
IFS=' ' read -r -a HOST_ARRAY <<< "$HOSTS"

# 创建日志目录
LOG_DIR="logs_$(date +%Y%m%d%H%M%S)"
mkdir "$LOG_DIR"

# 遍历主机并在每台机器上执行命令
for HOST in "${HOST_ARRAY[@]}"; do
    {
        echo "在 $HOST 上执行命令..."
        ssh "$HOST" "$COMMANDS"
        echo "$HOST: 命令执行完毕。"
    } | tee "$LOG_DIR/$HOST.log" &  # 将输出同时发送到日志文件和控制台
done

# 等待所有后台任务完成
wait

echo "所有命令执行完毕,日志保存在 $LOG_DIR 目录中。"
 

4 批量执行安装防火墙并关闭

/opt/juege/shell-scripts/batch-execute.sh 'k8s01 k8s02 k8s03 k8s04 k8s05' 'yum install firewalld -y;systemctl stop firewalld;systemctl disable firewalld;systemctl status firewalld'

5.安全策略级别设置

/opt/juege/shell-scripts/batch-execute.sh 'k8s01 k8s02 k8s03 k8s04 k8s05' '

getenforce;setenforce 0;getenforce'

6.批量文件传输脚本

#!/bin/bash

# 检查参数数量
if [ "$#" -ne 3 ]; then
    echo "用法: $0 '服务器列表' '要传输的文件路径' '远程目标目录'"
    echo "示例: $0 'k8s01 k8s02 k8s03 k8s04 k8s05' /path/to/file /remote/directory"
    exit 1
fi

# 获取参数
SERVERS=$1  # 服务器列表
SOURCE_FILE=$2  # 本地文件路径
REMOTE_DIR=$3  # 远程目录

# 将服务器列表转换为数组
IFS=' ' read -r -a SERVER_ARRAY <<< "$SERVERS"

# 遍历服务器并将文件传输到每个服务器的指定目录
for SERVER in "${SERVER_ARRAY[@]}"; do
    echo "正在将文件 $SOURCE_FILE 传输到 $SERVER:$REMOTE_DIR..."
    
    # 使用 scp 传输文件到远程服务器
    scp "$SOURCE_FILE" "$SERVER:$REMOTE_DIR"
    
    if [ $? -eq 0 ]; then
        echo "文件成功传输到 $SERVER:$REMOTE_DIR"
    else
        echo "文件传输到 $SERVER 失败!"
    fi
done

echo "所有传输任务完成。"
 

6.设置swap分区

设置swap分区、关闭大页面压缩(所有节点)——性能考虑

Linux中Swap分区(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

在大数据应用中,使用Swap分区会降低性能,通常需要关闭掉

脚本如下

执行批量传输命令

./transfer_file.sh 'k8s02 k8s03 k8s04 k8s05' /opt/juege/shell-scripts/close-swap-and-transparent-page.sh /opt/juege/shell-scripts

#!/bin/bash

# 设置 swappiness 为 0
sysctl vm.swappiness=0
echo 'vm.swappiness=0' >> /etc/sysctl.conf
sysctl -p

# 关闭当前 swap 分区
swapoff -a
# 注释掉 /etc/fstab 中的 swap 行
sed -i '/swap/s/^/#/' /etc/fstab

# 禁用透明大页面
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 添加到 /etc/rc.local 以永久禁用透明大页面
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local

# 确保 /etc/rc.local 是可执行的
chmod +x /etc/rc.local

echo "Swap 分区已关闭,透明大页面已禁用,Swappiness 已设置为 0。"
 

7.ntp设置

/opt/juege/shell-scripts/batch-execute.sh 'k8s01 k8s02 k8s03 k8s04 k8s05' '

yum -y install ntp'

vi /etc/ntp.conf (k8s01执行)

driftfile /var/lib/ntp/drift
restrict 165.154.221.97 mask 255.255.255.0 nomodify notrap
server ntp.aliyun.com
fudge ntp.aliyun.com stratum 10
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor

其它节点执行

driftfile /var/lib/ntp/drift
server k8s01
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor

 /opt/juege/shell-scripts/batch-execute.sh 'k8s01 k8s02 k8s03 k8s04 k8s05' '

service ntpd restart;systemctl enable ntpd.service'

ntpdc -c loopinfo


http://www.ppmy.cn/news/1526264.html

相关文章

mfc140u.dll丢失有啥方法能够进行修复?分享几种mfc140u.dll丢失的解决办法

你是否曾遇到过这样的情况&#xff1a;当你满怀期待地打开一个应用程序时&#xff0c;却被一个错误提示拦住了去路&#xff0c;提示信息中指出 mfc140u.dll 文件丢失。这个问题可能会让你感到困惑和无助&#xff0c;但是不要担心&#xff0c;本文将为你详细解读 mfc140u.dll 丢…

ARM驱动学习之21_字符驱动

ARM驱动学习之21_字符驱动 操作步骤&#xff1a; file_operations中的函数比较多&#xff0c; 选取用的比较多的函数简单介绍&#xff0c; 后 面的驱动教程中调用了对应的函数• int (*open) (struct inode *, struct file *) – 打开函数 • int (*release) (struct inode *…

【人工智能】AI创业的前沿思考 | 从垂直领域到通用智能模型AGI的崛起

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

p11 日志,元数据,进程的查看

直接运行docker run -d centos这个时候回启动容器&#xff0c;但是因为容器里面没有前台进程所以这个时候docker会把没用的进程给停止掉&#xff0c;可以看到docker ps命令没有查看到任何的正在运行的容器 但是如果说你使用 -it命令进入到了容器里面&#xff0c;这个他就不会…

??Ansible介绍

文章目录 一、Ansible基本概述1、什么是以及特性1&#xff09;是什么&#xff1a;2&#xff09;功能 2、架构下充当的角色&#xff1a;3、同软件对比Ansible与SaltStack*YAML的基本语法 Ansible与其他同类软件对比 4、Ansible的架构组成5、Ansible的执行流程 二、简单测试Ansib…

IP池对数据爬取工作的帮助

在数据爬取的过程中&#xff0c;IP池&#xff08;也称为代理IP池&#xff09;是一个极为重要的工具&#xff0c;它为数据抓取工作提供了多方面的支持和便利。本文将详细探讨IP池在数据爬取工作中的具体作用&#xff0c;以及它如何帮助提升数据抓取的效率、稳定性和合规性。 一…

[产品管理-21]:NPDP新产品开发 - 19 - 产品设计与开发工具 - 详细设计与规格定义

目录 前言&#xff1a; 一、详细设计与规格定义概述 1、产品详细设计 2、规格定义 3、详细设计与规格定义的关系 4、实际应用中的注意事项 二、详细设计与规格定义主要工具 2.1 质量功能展开QFD - 需求跟踪矩阵 1、QFD的基本原理 2、QFD的实施步骤 3、QFD的优势与应…

3. Python计算水仙花数

Python计算水仙花数 一、什么是水仙花数&#xff1f; 百度答案 二、怎样使用Python计算水仙花数&#xff1f; 这里需要for循环&#xff0c;if判断&#xff0c;需要range()函数&#xff0c;需要知道怎么求个位数&#xff0c;十位数&#xff0c;百位数… 1. For循环 语句结…