CentOS相关操作hub(更新中)

CentOS介绍:

CentOS(Community Enterprise Operating System )是基于 Red Hat Enterprise Linux(RHEL)源代码编译的开源企业级操作系统,提供与 RHEL 二进制兼容的功能

完全兼容 RHEL,可直接使用 RHEL 软件包。

内置 yum/dnf 包管理工具,支持在线更新和依赖管理。

长期支持策略(LTS),适用于企业级应用的高稳定性需求

CentOS 替代方案:​​Rocky Linux​​, AlmaLinux,Alibabacloud Linux,Ubuntu,

CentOS源:

CentOS 源​​(即软件仓库)是包含系统软件包及其依赖关系的服务器地址集合,用于通过 yum 或 dnf 工具安装、更新和管理软件。其核心作用包括:​​软件分发​​:提供操作系统核心组件、第三方工具等软件包。

​​版本管理​​:每个软件包包含版本、依赖关系和元数据信息,确保安装和更新的兼容性。

​​安全与稳定​​:官方源经过稳定性验证,第三方镜像源(如阿里云、清华)则提供更快的下载速度。

配置文件位于 /etc/yum.repos.d/ 目录,例如 CentOS-Base.repo 定义了官方源的地址、密钥和启用状态。
更换阿里源https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11fnB14u

更换源后需执行 yum makecache 的原因

  1. 清理旧缓存
    yum clean all 会删除本地缓存的元数据(如软件包列表、版本信息),防止新旧源数据冲突。
    示例:若旧缓存中记录的软件版本与新源不一致,可能导致依赖解析错误。
  2. 生成新缓存
    yum makecache 从新配置的源下载元数据并生成本地缓存,作用包括:
    加速操作:后续 yum install 或 yum update 直接从本地读取数据,减少网络请求耗时。
    数据同步:确保本地缓存与远程仓库的软件包信息一致,避免因信息滞后导致安装失败。
  3. 验证配置有效性
    执行 yum makecache 时若报错(如网络不通、DNS解析失败),可立即发现源配置问题

安装k8s集群前的操作系统配置

k8s集群要求centos系统版本在7.5以上

cat /etc/redhat-release

vim /etc/hosts 调整hosts配置

XXX master

XXX node1

XXX node2

时间同步:k8s要求集群节点实践必须精确一致

systemctl start chronyd

systemctl enable chronyd

date 查看时间

禁用iptables和firewalld服务

k8s&docker运行中产生大量iptables规则,为了不让系统规则混淆,直接关闭

systemctl stop firewalld

systemctl disable firewalld

systemctl stop iptables

systemctl disable iptables

禁用selinux(如果不关闭安装集群过程中会产生各种问题)

getenforce查看开启状态若enforcing则开启中

setenforce 0只是临时关闭,重启后会恢复

vim /etc/selinux/config

selinux的值修改为disabled

然后重启操作系统才会生效

禁用swap分区(因为影响系统性能)

vim /etc/fstab 注释掉swap分区一行(/dev/mapper/centos-swap swap)

重启操作系统才会生效

free -m检测是否关闭(swap都是000是关闭的)

修改Linux内核参数,添加网桥过滤和地址转发功能

vim /etc/sysctl.d/kubernetes.conf添加如下配置

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

重新加载配置

sysctl -p

添加网桥过滤模块

modprobe br_netfilter

查看网桥过滤模块是否加载成功

lsmod | grep br_netfilter

配置ipvs功能(k8s的service有iptables和ipvs两种代理模型,ipvs性能高,需要手动载入ipvs模块)

yum install ipset ipvsadmin -y

(这里需要添加阿里云的centos源)

添加需要加载的模块写入脚本文件

cat < /etc/sysconfig/modules/ipvs.modules

#!/bin/bash

modprobe -- ip_vs

modprobe -- ip_vs_rr

modprobe -- ip_vs_wrr

modprobe -- ip_vs_sh

modprobe -- nf_conntrack_ipv4

EOF

为脚本文件添加执行权限

chmod +x /etc/sysconfig/modules/ipvs.modules

执行脚本

/bin/bash /etc/sysconfig/modules/ipvs.modules

检查模块是否加载成功

lsmod | grep -e ip_vs -e nf_conntrack_ipv4

安装docker

设置主机名

配置主机名解析

配置时间同步

DNS服务器:223.5.5.5

https://gitee.com/yooome/golang/blob/main/22-k8s详细教程-调整版/k8s详细教程.md

cat < /etc/docker/daemon.json

{

"exec-opts":["native.cgroupdriver=systemd"],

"registry-mirrors":["https://j85j0k1y.mirror.aliyuncs.com"]

}

EOF

cat < /etc/yum.repos.d/kubernetes.repo

kubernetes

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

setenforce 0

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet && systemctl start kubelet

yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y

KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"

KUBE_PROXY_MODE="ipvs"

images=(

kube-apiserver:v1.17.4

kube-controller-manager:v1.17.4

kube-scheduler:v1.17.4

kube-proxy:v1.17.4

pause:3.1

etcd:3.4.3-0

coredns:1.6.5

)

for imageName in i m a g e s [ @ ] ; d o d o c k e r p u l l r e g i s t r y . c n − h a n g z h o u . a l i y u n c s . c o m / g o o g l e c o n t a i n e r s / {images[@]};do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/ images[@];dodockerpullregistry.cn−hangzhou.aliyuncs.com/googlecontainers/imageName

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/ i m a g e N a m e k 8 s . g c r . i o / imageName k8s.gcr.io/ imageNamek8s.gcr.io/imageName

docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName

done

kubeadm init

--kubernetes-version=v1.17.4

--pod-network-cidr=10.244.0.0/16

--service-cidr=10.96.0.0/12

--apiserver-advertise-address=10.0.0.100

安装docker过程解析:添加docker yum源,安装docker,配置镜像加速,配置cgroup驱动

kube-flannel.yml

https://github.com/flannel-io/flannel/blob/master/Documentation/kube-flannel.yml

Kubenetes---YAML语言:

zhangsan:

age:20

addr:china

sex:male

json&yaml相互转换:https://www.bairesdev.com/tools/json2yaml/

推荐格式:

zhangsan:

age:18

sex:male

address:China

相关推荐
Agent产品评测局9 小时前
互联网行业自动化平台选型,运营全流程提效指南:2026企业级智能体架构与实战全解析
运维·人工智能·ai·chatgpt·架构·自动化
亚空间仓鼠9 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...10 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家10 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun3411 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
三思守心11 小时前
从 0 到 1 搭建自动化内容工厂:深度测评楼兰AI及其在全平台发帖中的表现
运维·服务器·自动化
草莓熊Lotso11 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu11 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
ZKNOW甄知科技11 小时前
数智同行:甄知科技2026年Q1季度回顾
运维·服务器·人工智能·科技·程序人生·安全·自动化
-SGlow-11 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器