一、磁盘管理
磁盘单位:T、G、M、K、B(进阶1024)
管理硬盘需要考虑两个方面:一个是磁盘空间使用率、一个是磁盘i/o性能
i:input 表示输入
o:output 表示输出
存储颗粒分为闪存颗粒和主引导颗粒
主引导颗粒是负责
硬盘又分为机械盘和固态盘
机械盘是采用磁头和盘片技术,在工作的时候磁头在盘片上告诉的旋转
固态盘是采用芯片技术
硬盘的mbr引导分区:第一硬盘的0磁头,0柱面的前512字节。64分区列表,446字节的主引导程序,2字节效验()
系统里的所以程序都是进程,进程又分为父进程和子进程,子进程是由父进程管理的,父进程负责为子进程提供资源空间,如果子进程死掉,父进程负责回收子进程之前占用的资源,如果父进程先死掉,子进程就成了僵尸进程。
二、定时任务
/etc/crontab下
第一行:声明解析器
第二行:环境变量
第三行:发送邮件给root
第四行:用户的家目录
下面为时间
时间 | 分 | 时 | 日 | 月 | 周 | 用户 | 命令 |
---|---|---|---|---|---|---|---|
指数 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | root | /bin/rm test |
书写 | 0 | 0 | 15 | 12 | 0 | 管理员 | 删除test |
书写意思 | 无 | 无 | 每月的15号 | 每年12月 | 无 |
2 在/var/spool/cron文件下添加临时任务
命令 | 翻译 |
---|---|
0 0 * * 1,3 /bin/rm -rf /* | 周一和周三的0点整执行一次rm -rf |
0 /2 15 * * /bin/rm -rf / | 每个月的15号每隔两小时执行一次rm -fr |
0 0 * 1-6 * /bin/rm -rf /* | 一月到六月每天0点整执行一次rm -rf |
3、定时任务
1、查看定时任务:atq
2、设置定时任务:crontab -e
3、查看当时的定时任务:crontab -l
4、查看定时任务执行情况,定时任务日志文件位置:/var/log/cron
5、每个用户的设置的定时任务保存在:/var/spool/cron(按照用户名保存的)
6、为了避免总是收到邮件,可以把postfix服务关掉。把邮件服务停掉以后,
每次发邮件都不会成功,不成功就会在/var/spool/postfix/maildrop路径下产生一个小文件
7、这个小文件会占用系统inode号
8、清空定时任务:crontab -r
9、删除单个临时任务vi编辑删除即可(vi /var/spool/cron)
三、安全与权限管理:
1、账号管理:账号权限的管理:
①不用的账号要定期清理,userdel -r
②禁止不用的账号登录(修改登录脚本,锁账号,usermod,chsh)
③锁用户:passwd ,usermod ,修改shadow文件
账号的密码及有效期管理:①创建用户的时候指定有效期:useradd -e nday
②后期的手动指定
③增加密码的有效期 chage -M n 用户名(修改/etc/login.defs)
2、文件管理,增加文件锁,i锁和a锁:查看命令:lsattr
a锁:追加锁,只能追加的方式增加新内容 ,可用于日志文件保护
chattr +a 文件名
chattr -a 文件名
i锁:禁止一切能文件产生更改的操作
3、历史命令保存数量:vi /etc/profile HISTSIZE=n 是配置文件立即生效:source 目标文件
4、增加息屏时间:在/etc/profile中增加 TM0UT=n
5、权限管理
su - 切换用户 输入的是目标用户的密码
sudo su - 输入的是当前用户的密码
四、k8s加盘/加内存(almalinux)
# 第一步:三台linux(master,worker01,worker02)
# 第二步:开机,并关闭防火墙、关闭selinux、设置NetworkManage
systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 设置成开机关闭状态
# 关闭selinux
getenforce
sed -i "s#SELINUX=enforcing#SELINUX=disable#" /etc/selinux/config
# 分别设置三台机器的静态ip
# master:192.168.19.80
# worker01:192.168.19.81
# worker02:192.168.19.82
systemctl restart NetworkManage # 三台机器重启网卡
# 重启
# 第三步:开始扩容(增加硬盘(默认20G),设置2核4G)
# 第四步:开机,进行卷扩容
ll /dev/sd* # 查看当前设备下所以硬盘
pvcreate /dev/sdb # 将物理硬盘分区初始化为物理卷
vgdisplay # 查UG name
lvdisplay # 查LV Path路径
lvextend -L +19G /dev/almalinux/root # 增加19G给系统盘
五、almalinux安装k8s中了16.1版本
# 介于硬盘扩容制作
# 第一步:为每个节点配置主机节点
hostnamectl set-hostname k8s-master # 主
hostnamectl set-hostname k8s-worker01 # dev01
hostnamectl set-hostname k8s-worker02 # dev02
# 第二步:设置静态ip
# 扩容的12(linux脚本的12)已经设置
# 第三步:三台都配置映射文件(一样)
vi /etc/hosts
# 添加
# 192.168.19.80 k8s-master
# 192.168.19.81 k8s-worker01
# 192.168.19.82 k8s-worker02
# 第三步:关防火墙、关selinux
# 第四步:开启内容转发功能
lsmod | grep br_netfilter # 查看是否加载成功
swapoff -a # 查看是否关闭
vi /etc/sysctl.d/k8s.conf #
# net.bridge.bridge-nf-call-ip6tables=1
# net.bridge.bridge-nf-call-iptables=1
# net.ipv4.ip_forward=0
# vm.swappiness=0
# 第五步:加载内核,加载br_netfilter模块
modprode br_netfilter
# 第六步:生成密钥
ssh-keygen # 生成密钥
# 模拟链接
ssh k8s-master
ssh k8s-worker01
ssh k8s-worker02
# 创建指纹,免密链接
cd /root/.sh # 切换到密钥文件所在低
cat id_rsa,pub >authorized_keys # 生成免密文件
scp -pr .ssh/k8s-worker01:/root/ # 传输免密文件
# 免密成功
ssh k8s-worker01 # 创建链接或
# 第七步:下载docker和docker-ce
yum -y install docker # 下载docker
systemctl start docker # 开启docker
# 去阿里云开源网下载
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# 下载开源包
yum install -y https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el8.x86_64.rpm
# 下载支持包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 下载docker-ce
yum -y install docker-ce
# 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/demon.json <<-'FOF'
{
"exec-opts":["netive.ugroupdriver=systemd"]
}
FOF
# 安装k8s的1.24之前的版本在almalinux是无法打开的,需要cri-dockerd插件
# docker设置成开机自启状态
systemctl daemon-reload
systemctl enable docker --now # 设置成开机自启,并现在打开
# 第八步:安装依赖包,需要下载依赖包libcgroup-0.41-19.el8.x86_64.rpm
rpm -ivh libcgroup-0.41-19.el8.x86_64.rpm
# 依赖包libcgroup-tools-0.41-19.el8.x86_64.rpm
rpm -ivh libcgroup-tools-0.41-19.el8.x86_64.rpm
# 安装cri-dockerd(指定版本cri-dockerd-0.3.1-3.el7.x86_64.rpm)
rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm
# 修改/usr/lib/systemd/system/cri-docker.service文件信息
sed -i 's,^ExecStart.*,& --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9,' /usr/lib/systemd/system/cri-docker.service
# 第九步:启动cri-docker(三个都需要修改)
systemctl daemon-reload
systemctl enable cri-docker.service --now
systemctl enable cri-docker.socket --now
# 第十步:配置阿里源或者谷歌源(取其一即可)
# 这是阿里yum
cat < /etc/yum.repos.d/k8s.repo >> FOF
[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
FOF
## 这是谷歌yum
# cat < /etc/yum.repos.d/k8s.repo >> FTF
# [kubernetes]
# name=Kubernetes
# baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
# enabled=1
# gpgcheck=0
# repo_gpgcheck=0
# gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
# https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
# FTF
# 第十一步:查自己要安装的版本是否存在,并安装
yum list kubeadm.x86_64 --showduplicates | sort -r
yum list kubelet.x86_64 --showduplicates | sort -r
yum list kubectl.x86_64 --showduplicates | sort -r
# 安装
yum -y install kubeadm-1.26.1-0 kubelet-1.26.1-0 kubectl-1.26.1-0
##############################################################
# 以都在下master上进行,上方为三台或多台都要执行
##############################################################
# 第十二步:配置kubelet
vi /etc/sysconfig/kubelet
# 这只 KUBELET_EXTRA_ARGS的值为"--cgroup-driver=systemd"
# 第十三步:创建脚本image_download.sh并执行
#!/bin/bash
images=(
kube-apiserver:v1.26.1
kube-controller-manager:v1.26.1
kube-scheduler:v1.26.1
kube-proxy:v1.26.1
pause:3.9
etcd:3.5.6-0
coredns:v1.9.3)
for imageName in ${images[@]};
do
docker pull registry.aliyuncs.com/google_containers/$imageName
done
# 执行image_download.sh (bash image_download.sh)
# 第十四步:修改容器内所以版本名称
# 查看容器内的镜像
docker images
# 把对应的修改成简易版的
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.26.1 registry.k8s.io/kube-apiserver:v1.26.1
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.26.1 registry.k8s.io/kube-scheduler:v1.26.1
docker tag registry.aliyuncs.com/google_containers/kube-controller manager:v1.26.1 registry.k8s.io/kube-controller-manager:v1.26.1
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.26.1 registry.k8s.io/kube-proxy:v1.26.1
docker tag registry.aliyuncs.com/google_containers/coredns:v1.9.3 registry.k8s.io/coredns:v1.9.3
docker tag registry.k8s.io/coredns:v1.9.3 registry.k8s.io/coredns/coredns:v1.9.3
docker tag registry.aliyuncs.com/google_containers/etcd:3.5.6-0 registry.k8s.io/etcd:3.5.6-0
docker tag registry.aliyuncs.com/google_containers/pause:3.9 registry.k8s.io/pause:3.9
# 第十五步:初始化k8s集群只需master
kubeadm init --kubernetes-version=v1.26.1 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.224.0.0/16 \
--apiserver-advertise-address=192.168.19.133 \
--image-repository=registry.aliyuncs.com/google_containers \
--cri-socket unix:///var/run/cri-dockerd.sock \
--ignore-preflight-errors=all
# 192.168.19.133为master的ip
# 第十六步:初始化后有提示下一步操作
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#
export KUBECONFIG=/etc/kubernetes/admin.conf
# ***把最后两行的内容保持起来
# kubeadm join 192.168.80.148:6443 --token 8x4o2u.hslo8xzwwlrncr8s \
# --discovery-token-ca-cert-hash
# sha256:7323a8b0658fc33d89e627f078f6eb16ac94394f9a91b3335dd3ce73a3f313a0
# 下载operator资源清单文件
wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigeraoperator.yaml
# 创建应用资源清单文件operator
kubectl create -f tigera-operator.yaml
# 通过自定义资源方式安装
wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/customresources.yaml
# 修改为使用kubeadm init ----pod-network-cidr对应的IP地址段
ipPools:
- blockSize: 26
cidr: 10.224.0.0/16
encapsulation: VXLANCrossSubnet
# 创建应用资源清单文件
kubectl create -f custom-resources.yaml
# 监视calico-sysem命名空间中pod运行情况(下载情况)
watch kubectl get pods -n calico-system
# 查看
kubectl get pods -A
六、工作节点添加
# 接上方almalinux安k8s进行工作节点添加(因为上方容器下载缓慢,下载之后的操作)
# 第一步:sha156为13的第十六步中的最后两行内容中的一部分
kubeadm join 192.168.19.133:6443 --token
8x4o2u.hslo8xzwwlrncr8s \
--discovery-token-ca-cert-hash \
sha256:7323a8b0658fc33d89e627f078f6eb16ac94394f9a91b3335dd3ce73a3f313a0 \
--cri-socket unix:///var/run/cri-dockerd.sock
# 第二步:在两个worker节点上执行即可
kubeadm join 192.168.19.133:6443 --token nl6h5h.q40f5pjmo091s8xe \
--discovery-token-ca-cert-hash sha256:20c101cc5ef032153e6de932554a8b76788a159fc22da91ee94b2d12edc3abb3 --cri-socket unix:///var/run/cri-dockerd.sock
# 第三步:查看
kubectl get pod -A -o wide
# 第四步:查看是否全部跑起来了
kubectl get nodes
# 第五步:docker加速下载方法仅限于正在下载的镜像
# -n表示指向空间,指向的空间是NAMESPACE下面的字段
kubectl describe pod calico-apiserver-66648f879c-cxq2x -n calico-apiserver
# 第六步:然后在另外两台master01、02下也同时执行此命令就会提升下载
docker pull calico/apiserver:v3.25.0
# 第七步:验证集群可用性
kubectl get nodes
# 查看集群健康情况
kubectl get cs
# 查看kubernetes集群pod运行情况
kubectl get pods -n calico-system