免交互设置密码
echo "123456" |passwd --stdin u01
查看所有服务单元
systemctl list-units --type=service --all
# 正在运行的
systemctl list-units --type=service --state=running
Mysql
如果你只想快速看所有用户的插件,省略 WHERE 即可
SELECT user, host, plugin FROM mysql.user;
SELECT user, host, plugin, authentication_string
FROM mysql.user
WHERE user='keystone'\G
只允许从 controller 主机连接
CREATE USER IF NOT EXISTS 'keystone'@'controller' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller';
FLUSH PRIVILEGES;
允许从任意主机连接(测试环境常用)
CREATE USER IF NOT EXISTS 'keystone'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%';
FLUSH PRIVILEGES;
再次验证
mysql -u keystone -p123456 -h controller keystone -e 'show tables;'
ssh连接速度优化
vim /etc/ssh/sshd_config
GSSAPIAuthentication no #关闭SERVER上的GSS认证
UseDNS no #关闭DNS反向解析
systemctl restart sshd.service
免重启显示新添加硬盘的方法
# 查看主机总线型号
ls /sys/class/scsi_host/
host0 host1 host2
# 重新扫描SCSI总线来添加设备
echo "- - -" >/sys/class/scsi_host/host0/scan
echo "- - -" >/sys/class/scsi_host/host1/scan
echo "- - -" >/sys/class/scsi_host/host2/scan
php yum源配置-7系统
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
php5.6
yum install -y php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64
php7.0
yum install -y php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64
安装PHP FPM
yum install php56w-fpm
yum install php70w-fpm
systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
vim全局替换
例:将cn替换为com
:%s/cn/com/g
mysql安装
# 创建用户
CREATE USER 'slaveusr'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 授权用户 主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'slaveusr'@'%';
# 授权用户 所有权限
GRANT ALL PRIVILEGES ON *.* TO 'slaveusr'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
修改时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone <时区> # 替换<时区>为你希望设置的时区,例如 Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
设置网卡多IP
ifconfig ens160:1 192.168.3.192 netmask 255.255.255.0 up
ip addr add 192.168.3.193/24 dev ens160 label ens160:2
ifconfig ens160:1 192.168.3.192/24 up
重启网络后消失
systemctl restart network
nmcli connection reload
nmcli connection up ens160
修改静态ip地址
7、8 系列系统
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 静态IP地址
IPADDR="192.168.3.200"
NETMASK="255.255.255.0"
GATEWAY="192.168.3.2"
DNS1="114.114.114.114"
9系列系统
----------------------------------
使用命令设置
nmcli con mod ens160 ipv4.method manual ipv4.addresses 192.168.3.191/24 ipv4.gateway 192.168.3.2 ipv4.dns 114.114.114.114 connection.autoconnect yes
nmcli connection reload && nmcli connection up ens160
----------------------------------
配置文件设置
vim /etc/NetworkManager/system-connections/ens160.nmconnection
[ipv4]
#method=auto
method=manual
address1=192.168.3.91/24,192.168.3.2
dns=223.5.5.5;114.114.114.114
nmcli c reload
nmcli c up ens160
[ipv6]
addr-gen-mode=eui64
method=disabled
[ipv6]
addr-gen-mode=eui64
method=disabled # disabled 关闭ipv6 不修改也可以
nmcli n #查看networkmanager启动与否
nmcli c reload #重新加载配置文件,c是connection的缩写
nmcli c up ens160 #启动你设置的网卡ens160
nmcli d # 查看网卡状态,也可以用ifconfig
修改主机名称
hostnamectl set-hostname master1-admin
停止防火墙
systemctl stop firewalld
systemctl disable firewalld
禁用selinux
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
常用软件包的安装
yum install -y epel-release tree vim wget bash-completion lrzsz nfs-utils net-tools sysstat iotop unzip nc nmap telnet bc psmisc yum-utils ipvsadm git socat conntrack sshpass
centos7修改阿里云源
# wget 方式 阿里云源
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/centos.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
# curl 方式 阿里云源
rm -rf /etc/yum.repos.d/*.repo
curl "http://mirrors.aliyun.com/repo/Centos-7.repo" -o "/etc/yum.repos.d/CentOS-Base.repo"
curl "http://mirrors.aliyun.com/repo/epel-7.repo" -o "/etc/yum.repos.d/epel.repo"
yum clean all
yum makecache
# wget 方式 腾讯源
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/Centos-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache
http://mirrors.cloud.tencent.com/repo/centos7_base.repo
http://mirrors.cloud.tencent.com/repo/epel-7.repo
# curl 方式 腾讯源
rm -rf /etc/yum.repos.d/*.repo
curl -L -o /etc/yum.repos.d/CentOS-Base.repo "http://mirrors.cloud.tencent.com/repo/centos7_base.repo"
curl -L -o /etc/yum.repos.d/CentOS-epel.repo "http://mirrors.cloud.tencent.com/repo/epel-7.repo"
yum clean all
yum makecache
# 最小化无影响安装
yum install wget net-tools tree vim bash-completion lrzsz -y
rocky linux 8修改阿里云源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
rocky linux 9修改上海交通大学源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.sjtug.sjtu.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/rocky-*.repo
mkdir /etc/yum.repos.d/bakrepo
mv /etc/yum.repos.d/*.bak /etc/yum.repos.d/bakrepo
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/rocky.repo
dnf makecache
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/[Rr]ocky*.repo
配置系统时间与网络同步
server ntp.aliyun.com iburst
server ntp.ntsc.ac.cn iburst
server time.neu.edu.cn iburst
删除原有配置加入上面地址
vim /etc/chrony.conf
systemctl restart chronyd
chronyc sources -v #查看同步状态
timedatectl #查看同步状态
Local time: 五 2024-03-22 17:30:40 CST
Universal time: 五 2024-03-22 09:30:40 UTC
RTC time: 五 2024-03-22 09:30:40
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no ####yes
NTP service: active
RTC in local TZ: no
关闭系统swap缓存
swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab
host文件解析配置
echo '192.168.137.31 zhyj1.cm zhyj1' >> /etc/hosts
ssh免密快速配置
创建秘钥
ssh-keygen -f ~/.ssh/id_rsa -P '' -q
参数讲解:
ssh-keygen:密钥对创建工具 [-P old_passphrase] 密码 [-f output_keyfile] 输出的秘钥文件 [-q] 不输出信息 [-t dsa ] 指定秘钥类型
拷备秘钥到其他主机:
yum install sshpass
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 192.168.3.32
参数讲解: [root@web02 ~]# sshpass -help Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 192.168.137.32 sshpass [-f|-d|-p|-e] [-hV] command parameters ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@172.16.1.8 ssh-copy-id [-f] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname 说明: -f: force mode 强制 [-i [identity_file]] 指定秘钥文件 [[-o <ssh -o options>] ...] 指定ssh参数选项
ssh远程执行命令
sshpass -p '123456' ssh root@192.168.3.21 'echo 1 > /1.txt'
加载系统内核参数
modprobe br_netfilter
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
#加入开机启动项目
echo "modprobe br_netfilter" >> /etc/rc.d/rc.local
echo "sysctl -p /etc/sysctl.d/k8s.conf" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
#查看是否加载
lsmod | grep br_netfilter
tab键命令补全
yum install bash-completion
docker-ce阿里云源安装
yum install yum-utils -y
yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's|https://download.docker.com|https://mirrors.tuna.tsinghua.edu.cn/docker-ce|g' /etc/yum.repos.d/docker-ce.repo
# 卸载旧版 Docker 及相关包
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-selinux
yum install docker-ce -y --allowerasing # rocky8/9
yum install docker-ce -y # centos7
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<-'EOF'
{
"log-opts": {
"max-size": "5m",
"max-file": "3"
},
"exec-opts": [
"native.cgroupdriver=systemd"
],
"insecure-registries": [
"192.168.137.35",
"harbor.cn"
],
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker-0.unsee.tech",
"https://docker.1panel.live",
"https://docker.ckyl.me",
"https://docker.m.daocloud.io",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://docker.rainbond.cc",
"https://docker.registry.cyou",
"https://docker.xuanyuan.me",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://dockerhub.icu",
"https://docker.jsdelivr.fyi",
"https://dockerproxy.com",
"https://dockertest.jsdelivr.fyi",
"https://hub.rat.dev",
"https://mirror.aliyuncs.com",
"https://mirror.baidubce.com",
"https://mirror.iscas.ac.cn",
"https://reg-mirror.qiniu.com"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
#####################################################
docker pull bitnami/jenkins:2.452.3-debian-12-r7
docker pull openjdk:8-jdk-alpine
docker pull gcr.io/google_containers/pause:3.8
docker pull docker.io/library/mysql:5.7.43
#####################################################
#安装指定版本containerd.io
yum install containerd.io-1.6.28-3.1.el8.x86_64
yum list docker-ce.x86_64 --showduplicates | sort -r
#指定安装docker的版本
yum install docker-ce-24.0.2-1.el8.x86_64 -y
yum install docker-ce-24.0.2-1.el7.x86_64 -y
# 导出本机镜像命令
docker save -o coredns.tar k8s.gcr.io/coredns:1.3.1
# 导出其他镜像命令
docker load -i coredns.tar
# x86平台指定下载arm平台的命令
docker pull --platform linux/arm64 docker.io/library/mysql:latest
docker配置代理
mkdir /usr/lib/systemd/system/docker.service.d
vim /usr/lib/systemd/system/docker.service.d/http-proxy.conf
# 加入本地局域网内v2ray的地址,打开允许局域网连接。默认端口10809
[Service]
Environment="HTTP_PROXY=http://192.168.1.18:10809"
Environment="HTTPS_PROXY=http://192.168.1.18:10809"
192.168.1.18
# 重启
systemctl daemon-reload
systemctl restart docker
# 显示如下结果说明设置成功
systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://192.168.27.158:10809 HTTPS_PROXY=http://192.168.27.158:10809
# 尝试拉一下google的镜像应该可以了
docker pull gcr.io/google_containers/pause:latest
docker pull gcr.io/google_containers/pause:3.8
docker pull adguard/adguardh
# 删除代理
rm -rf /usr/lib/systemd/system/docker.service.d/http-proxy.conf
systemctl daemon-reload
systemctl restart docker
systemctl show docker --property Environment
docker compose 安装
#下载docker-compose文件 且 将文件移动到/usr/local/bin环境变量下面
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#将文件复制到/usr/local/bin环境变量下面
# mv docker-compose /usr/local/bin
#给他一个执行权限
chmod +x /usr/local/bin/docker-compose
#查看是否安装成功
docker-compose -version
docker常用命令
[root@zhyj5 ~]# docker commit -a "hello" -m "add" 2c3457d804ba vv
sha256:0988d4c96972b89c9d366be33578cc020b794dd8cbdf65fd87157fe7c0fbf0d8
[root@zhyj5 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vv latest 0988d4c96972 7 seconds ago 471MB
v1 latest f7e1bba77f64 3 minutes ago 471MB
centos latest 76d6bc25b8a5 5 years ago 200MB
mycentos v2 76d6bc25b8a5 5 years ago 200MB
#运行nginx容器并挂载目录
docker run -itd -p8089:80 -v /var/www/html:/usr/share/nginx/html nginx:1.21
#Portainer安装
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer-ce
#删除所有容器
docker rm $(docker ps -aq)
#停止所有容器
docker stop $(docker ps -q)
#一次性删除所有本地镜像以及其标签
docker rmi -f $(docker images -a -q)
#打包所有镜像
docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o allimages.tar
docker save $(docker images --format "{{.Repository}}:{{.Tag}}") -o allimages.tar
#提交当前运行的镜像
docker commit -m "hello-nginx" -a "zyj" 95c9520689fd nginx:hello
#docker file 编译安装nginx
FROM rockylinux:8.8
LABEL maintainer="pod<pod@example.com>"
ENV NGINX_VERSION 1.23.1
ENV AUTHOR jack
ENV PATH=/usr/local/nginx1/sbin:$PATH
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/*.repo
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
RUN mkdir /nginx
COPY . /nginx
WORKDIR /nginx
RUN set -ex; \
bash install_nginx.sh; \
yum install vim iputils net-tools iproute -y
EXPOSE 80
STOPSIGNAL SIGQUIT
CMD ["nginx","-g","daemon off;"]
############################################
# 容器间的互联可以通过--link参数来实现
# 1、当使用--link参数启动一个新的容器时,Docker会自动设置源容器(被链接的容器)和目标容器(链接到源容器的新容器)之间的连接。
# 2、Docker会在目标容器的/etc/hosts文件中添加一行记录,将源容器的IP地址映射到源容器的名称或自定义别名上,从而使得目标容器可以直接通过名字访问源容器。
# 3、同时,环境变量会被注入到目标容器中,这些环境变量包含了源容器的相关信息,例如主机名、端口等。
# 启动一个容器并链接到另一个已经存在的容器
docker run --name container_b --link container_a:alias_name -d image_b
# 1、container_a是已存在的容器名称。
# 2、alias_name是可选的别名,如果未指定,则默认为container_a的容器名。
# 3、这样做之后,container_b就可以通过alias_name或者container_a的名字直接访问container_a暴露的服务了。
# 例:lnmp 环境部署
docker run -itd -p 9000:9000 -v /var/www/html/:/var/www/html --name php-fpm php:7.0-fpm
docker run -itd -p 8081:80 -v /root/lnmp/nginx.conf:/etc/nginx/nginx.conf -v /var/www/html:/var/www/html --name nginx-server --link php-fpm:php nginx:1.21
# 注意: 要删除默认配置文件 default.conf
常用命令
常用小命令
在 Linux 中,>/dev/null 和 2>&1 是两个常用的重定向操作,它们用于控制命令的输出和错误信息。而且这两个参数经常 与 nohup 命令一起使用。
nohup命令
nohup 是一个用于在后台运行命令的 Unix 命令。它的主要作用是运行指定的命令,即使用户退出登录或终端关闭,该命令也能够继续运行。通过使用 nohup 命令,可以确保程序在后台持续运行,而不会受到终端会话的影响。
当你在终端中运行一个进程并希望在终端关闭后该进程仍然继续运行时,就可以使用 nohup 命令。例如:
nohup sh monitor.sh > nohup_monitor.log /dev/null 2>&1 &
上面命令的语法解析
nohup:表示要以 "no hang up" 的方式运行命令,即使终端关闭也不会中断该命令的执行。
sh sr_monitor.sh:表示要执行名为 sr_monitor.sh 的 Shell 脚本。
>:表示重定向标准输出。
nohup_monitor.log:表示将标准输出重定向到一个名为 nohup_monitor.log 的文件中。
/dev/null:表示将标准输入重定向到空设备,即忽略所有输入。
2>&1:表示将标准错误输出重定向到与标准输出相同的位置,即也重定向到 nohup_monitor.log 文件。
&:表示在后台运行命令。
这个命令的作用:
以 nohup 方式在后台运行 sr_monitor.sh 脚本;
将脚本的标准输出和标准错误输出都重定向到 nohup_monitor.log 文件;
忽略任何标准输入。
/dev/null 解析
/dev/null 是 Linux 系统中的一个特殊文件,它是一个无处不在的数据黑洞。任何写入 /dev/null 的数据都会消失,不会有任何数据被保存下来。因此,command >/dev/null 会将 command 的标准输出重定向到 /dev/null,也就是丢弃标准输出。例如:
echo "Hello, World!" >/dev/null
在这个命令中,echo "Hello, World!" 的输出 "Hello, World!" 会被重定向到 /dev/null,因此你不会在终端看到这个输出。
2>&1 解析
2>&1 是一个重定向操作,它将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1)。因此,command 2>&1 会将 command 的标准错误和标准输出合并,也就是将标准错误输出到标准输出。例如:
ls /path/to/nonexistent 2>&1
在这个命令中,ls /path/to/nonexistent 的错误输出会被重定向到标准输出,因此你会在终端看到这个错误输出。
将这两个重定向操作结合使用,command >/dev/null 2>&1,可以将 command 的标准输出和标准错误都丢弃。例如:
ls /path/to/nonexistent >/dev/null 2>&1
在这个命令中,ls /path/to/nonexistent 的输出和错误都会被重定向到 /dev/null,因此你不会在终端看到任何输出。
需要注意的是,>/dev/null 2>&1 的顺序是不能写反的。如果你写成 2>&1 >/dev/null,那么只有标准输出会被丢弃,标准错误还会被输出到终端。
最近修改过的文件
find ./ -type f -mmin -240
命令 find ./ -type f -mmin -240 的作用是在当前目录(./)及其所有子目录下查找所有在最近240分钟内被修改过的文件
卸载软件命令
rpm -e lrzsz --nodeps
mysql初始化
mysql -h 192.168.3.201 -P 3306 -u root -p 123456 -e"${create_db_sql}"
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaA...111';
mysql -h 192.168.3.201 -P 3306 -u root -p 123456 -e"${create_db_sql}"
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'aaA...111' WITH GRANT OPTION;
自签发证书
mkdir /data/ssl -p
openssl genrsa -out ca.key 3072
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
按照提示输入
openssl genrsa -out harbor.key 3072
openssl req -new -key harbor.key -out harbor.csr
按照提示输入
openssl x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650
查看证书是否有效:
openssl x509 -noout -text -in harbor.pem
系统快速初始化脚本(centos7)
#!/bin/bash
echo "=====系统环境初始化脚本====="
sleep 3
echo "——>>> 关闭防火墙与SELinux <<<——"
sleep 3
systemctl stop firewalld
systemctl disable firewalld &> /dev/null
setenforce 0
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config
echo "——>>> 创建阿里仓库 <<<——"
sleep 3
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install wget
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
echo "——>>> 设置时区并同步时间 <<<——"
sleep 3
timedatectl set-timezone Asia/Shanghai
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd
echo "——>>> 设置系统最大打开文件数 <<<——"
sleep 3
if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535 #软限制
* hard nofile 65535 #硬限制
EOF
fi
echo "——>>> 系统内核优化 <<<——"
sleep 3
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1 #防范SYN洪水攻击,0为关闭
net.ipv4.tcp_max_tw_buckets = 20480 #此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死
net.ipv4.tcp_max_syn_backlog = 20480 #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数
net.core.netdev_max_backlog = 262144 #每个网络接口 接受数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目
net.ipv4.tcp_fin_timeout = 20 #FIN-WAIT-2状态的超时时间,避免内核崩溃
EOF
echo "——>>> 减少SWAP使用 <<<——"
sleep 3
echo "0" > /proc/sys/vm/swappiness
echo "——>>> 安装系统性能分析工具及其他 <<<——"
sleep 3
yum install -y gcc make autoconf vim sysstat net-tools iostat lrzsz
#############################################################
k8s篇
nginx官方镜像安装ping命令
apt-get install -y inetutils-ping
apt-get install -y dnsutils
阿里云容器镜像
registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1
yum源-k8s
cat <<EOF> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0
systemctl enable kubelet && systemctl start kubelet
以镜像名中包含 xuxiaowei 为例去操作
| 查看 ctr 中 k8s 使用过的镜像 | ctr -n=k8s.io i ls |
|---|---|
| 查看 ctr 中 k8s 使用过的镜像:搜索 | ctr -n=k8s.io i ls | grep xuxiaowei |
| 查看 ctr 中 k8s 使用过的镜像:搜索:展示镜像ID | ctr -n=k8s.io i ls -q | grep xuxiaowei |
| 查看 ctr 中 k8s 使用过的镜像:搜索:展示镜像ID:拼接 | ctr -n=k8s.io i ls -q | grep xuxiaowei | xargs |
| 查看 ctr 中 k8s 使用过的镜像:搜索:展示镜像ID:拼接:删除 | ctr -n=k8s.io i ls -q | grep xuxiaowei | xargs ctr -n=k8s.io i rm |
命令补全
ubuntu系列
source /usr/share/bash-completion/bash_completion;source <(kubectl completion bash)
echo "source /usr/share/bash-completion/bash_completion;source <(kubectl completion bash)" >> ~/.bashrc
centos系列
yum install bash-completion
source /usr/share/bash-completion/bash_completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc
busybox测试命令
kubectl run busybox --image docker.io/library/busybox:1.28 --image-pull-policy=IfNotPresent --restart=Never --rm -it busybox /bin/sh
vim busybox-dp.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: busybox
spec:
replicas: 1
selector:
matchLabels:
app: busybox
template:
metadata:
labels:
app: busybox
spec:
containers:
- name: busybox
image: busybox:1.28 #内置的linux大多数命令,多用于测试
args:
- /bin/sh
- -c
- sleep 10; touch /tmp/healthy; sleep 30000
readinessProbe: #就绪探针
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 10 #10s之后开始第一次探测
periodSeconds: 5
vim busybox-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
labels:
app: busybox
spec:
containers:
- name: busybox
image: busybox:1.28
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
imagePullPolicy: IfNotPresent
k8s 常用的命令
kubectl get nodes
kubectl get pods
kubectl get pods --show-labels
kubectl get pods --show-labels -n kube-system
kubectl get pods -l run=my-nginx
kubectl get deploy
kubectl get rs
kubectl api-resources
kubectl describe nodes
kubectl describe nodes -owide
kubectl describe nodes xuegode63
kubectl apply -f pod.yaml
kubectl api-resources
kubectl expalin pods.metadata
kubectl explain Deployment
kubectl explain Deployment.metadata
将文件从节点复制到Pod中的容器
kubectl cp /path/to/save/file.ext my-helper-pod:/path/to/save/file.ext
pod亲和性
apiVersion: v1
kind: Pod
metadata:
name: second
labels:
app: second
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- first
topologyKey: kubernetes.io/hostname
---
apiVersion: v1
kind: Pod
metadata:
name: second
labels:
app: second
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- first
topologyKey: kubernetes.io/hostname
mysql常用命令
# 5.7版本
grant all on *.* to 'mysql_monitor'@'%' identified by 'aaB...111'
flush privileges;
# 8.0版本
CREATE USER 'exporter'@'%' IDENTIFIED BY 'aaB...111' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
#所有权限
GRANT ALL ON *.* TO 'exporter'@'%';
Ubuntu配置篇
常用命令的安装
apt -y install xfsprogs openssh-server vim net-tools
systemctl stop ufw
systemctl disable ufw
配置bash命令补全
vim /etc/bash.bashrc
# enable bash completion in interactive shells
放开这段代码
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
放开这段代码
解决20版本的复制粘贴
apt autoremove open-vm-tools -y
apt install open-vm-tools-desktop -y
reboot
ssh服务安装
apt-get install openssh-server -y
vim /etc/ssh/sshd_config
PermitRootLogin yes # 修改这行
sudo passwd root #给root用户设定密码
systemctl restart ssh
允许root界面登录
vim /etc/pam.d/gdm-password
把这行注释了 一般为第二行
#auth required pam_succeed_if.so user != root quiet_success
静态IP的设置
vim /etc/netplan/01-network-manager-all.yaml
# 静态IP
network:
ethernets:
ens33:
dhcp4: false
addresses: [192.168.3.22/24]
# 废弃 gateway4,改用 routes
routes:
- to: default
via: 192.168.3.2
nameservers:
# 这里必须缩进!
addresses: [192.168.3.2]
version: 2
renderer: NetworkManager
————————————————————————————————————————————————————
# 动态IP
network:
ethernets:
ens33:
dhcp4: true
version: 2
renderer: NetworkManager
# 应用网卡配置
netplan apply
Ubuntu22版本修改国内源
cp /etc/apt/sources.list /etc/apt/sources.list.backup
vim /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse