首页
友链
统计
留言
更多
直播
壁纸
推荐
我的毛线
院长科技
Search
1
本站官方群:894703859------|诚邀各位大佬的入驻!
423 阅读
2
pxe 自动化安装系统
352 阅读
3
新款螺旋帽子编织#夏凉帽#合股线夏凉帽编织
310 阅读
4
10 个Linux Awk文本处理经典案例
309 阅读
5
软件安装
300 阅读
Linux
yaml
iptables
shell
ansible
ssl
命令
文件管理
用户权限
综合集群架构
三剑客
awk
sed
自动化
pxe
编织
编织视频
监控
prometheus
go
go占位符
vue
vue基础
vue项目
web
Nginx
html
vscode
html标签
html表格
css基础
css定位
css精灵图
code
html5
项目
js
jQuery
面向对象
kubernetes
k8s命令
k8s
k8s搭建
database
clickhouse
常用工具
微软
登录
/
注册
Search
标签搜索
基础
js
Nginx
css
webapi
jQuery
面向对象
command
项目
ansible
用户权限
go
html
文件管理
命令
综合集群架构
k8s
pxe
awk
vscode
JustDoIt
累计撰写
112
篇文章
累计收到
4
条评论
首页
栏目
Linux
yaml
iptables
shell
ansible
ssl
命令
文件管理
用户权限
综合集群架构
三剑客
awk
sed
自动化
pxe
编织
编织视频
监控
prometheus
go
go占位符
vue
vue基础
vue项目
web
Nginx
html
vscode
html标签
html表格
css基础
css定位
css精灵图
code
html5
项目
js
jQuery
面向对象
kubernetes
k8s命令
k8s
k8s搭建
database
clickhouse
常用工具
微软
页面
友链
统计
留言
直播
壁纸
推荐
我的毛线
院长科技
搜索到
12
篇与
的结果
2023-11-22
k8s 1.28高可用搭建nginx/keepalived基础环境02
1. nginx安装1.1 所有的master节点创建运行nginx的用户useradd nginx -s /sbin/nologin -M 1.2 安装依赖mkdir -p /data/k8s-work cd /data/k8s-work yum -y install pcre pcre-devel openssl openssl-devel gcc gcc-c++ automake autoconf libtool make 1.3 下载nginx软件包wget http://nginx.org/download/nginx-1.21.6.tar.gz 1.4 解压软件包tar xf nginx-1.21.6.tar.gz 1.5 配置nginxcd nginx-1.21.6 ./configure --prefix=/usr/local/nginx/ \ --with-pcre \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-stream \ --with-http_stub_status_module \ --with-http_gzip_static_module 1.6 编译并安装nginxmake -j 4 && make install 1.7 使用systemctl管理,并设置开机启动cat > /usr/lib/systemd/system/nginx.service <<EOF [Unit] Description=The nginx HTTP and reverse proxy server After=network.target sshd-keygen.service [Service] Type=forking EnvironmentFile=/etc/sysconfig/sshd ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target EOF 1.8 检查nginx服务是否启动systemctl enable --now nginx.service systemctl status nginx ps -ef|grep nginx 1.9 同步nginx软件包和脚本到集群的k8s-ha02scp -rp k8s-ha02:/usr/local/nginx/ scp -rp k8s-ha02:/usr/lib/systemd/system/nginx.service nginx配置文件2.1 编辑nginx配置文件cat > /usr/local/nginx/conf/nginx.conf <<EOF user nginx nginx; worker_processes auto; events { worker_connections 20240; use epoll; } error_log /var/log/nginx_error.log info; stream { upstream kube-servers { hash $remote_addr consistent; server k8s-master01:6443 weight=5 max_fails=1 fail_timeout=3s; server k8s-master02:6443 weight=5 max_fails=1 fail_timeout=3s; server k8s-master03:6443 weight=5 max_fails=1 fail_timeout=3s; } server { listen 6443; proxy_connect_timeout 3s; proxy_timeout 3000s; proxy_pass kube-servers; } } EOF 2.2 同步nginx的配置文件到k8s-ha02scp -rp k8s-ha02:/usr/local/nginx/conf/nginx.conf 2.3 所有节点启动nginx服务systemctl enable --now nginx systemctl reload nginx [root@k8s-ha01 nginx-1.21.6]# netstat -lntp|grep 6443 tcp 0 0 0.0.0.0:6443 0.0.0.0:* LISTEN 5119/nginx: master 3.部署keepalived3.1 安装keepalived组件yum -y install keepalived 3.2 修改keepalive的配置文件(根据实际环境,interface eth0可能需要修改为interface ens33)3.2.1 编写配置文件,ha节点需要修改router_id和mcast_src_ip的值即可。3.2.1.1 k8s-ha01节点cat > /etc/keepalived/keepalived.conf <<EOF ! Configuration File for keepalived global_defs { router_id 192.168.31.32 } vrrp_script chk_nginx { script "/etc/keepalived/check_port.sh" interval 2 weight -20 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 100 priority 100 advert_int 1 mcast_src_ip 192.168.31.32 nopreempt authentication { auth_type PASS auth_pass wangmanyuan.com } track_script { chk_nginx } virtual_ipaddress { 192.168.31.100 } } EOF 3.2.1.1 k8s-ha02节点cat > /etc/keepalived/keepalived.conf <<EOF ! Configuration File for keepalived global_defs { router_id 192.168.31.33 } vrrp_script chk_nginx { script "/etc/keepalived/check_port.sh" interval 2 weight -20 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 100 priority 99 advert_int 2 mcast_src_ip 192.168.31.33 nopreempt authentication { auth_type PASS auth_pass wangmanyuan.com } track_script { chk_nginx } virtual_ipaddress { 192.168.31.100 } } EOF 3.2.2 各节点编写健康检查脚本cat > /etc/keepalived/check_port.sh <<\EOF #!/bin/bash err=0 for k in $(seq 1 3) do check_code=$(pgrep nginx) if [[ $check_code == "" ]]; then err=$(expr $err + 1) sleep 1 continue else err=0 break fi done if [[ $err != "0" ]]; then echo "systemctl stop keepalived" /usr/bin/systemctl stop keepalived exit 1 else exit 0 fi EOF chmod +x /etc/keepalived/check_port.sh 3.3 启动keepalivedsystemctl enable --now keepalived 3.4 测试keepalivedip a # 查看VIP在哪个节点 systemct stop keepalived # 停止服务,观察是否飘逸VIP 3.5 参数说明温馨提示: router_id: 节点ip,master每个节点配置自己的IP mcast_src_ip: 节点IP,master每个节点配置自己的IP virtual_ipaddress: 虚拟IP,即VIP。 interface: 指定接口的名称。 virtual_router_id: 有效值为0-255,可以理解为一个组ID,只有相同的ID才被确认为一个组。 如果每个keepalived实例修改的ID不一致,则会出现各自有一个VIP的现象。 ```
2023年11月22日
6 阅读
0 评论
0 点赞
2023-11-22
k8s 1.28高可用搭建基础环境01
Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务发现、扩容缩容、监控,维护等一整套功能,努力成为跨主机集群的自动部署、扩展以及运行应用程序容器的平台。 它支持一系列容器工具, 包括Docker、Containerd等。一、集群环境准备1.1 主机规划 主机IP地址 主机名 主机配置 主机角色 软件列表 192.168.31.34 k8s-master01 4C4G master kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、Containerd、runc 192.168.31.35 k8s-master02 4C4G master kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、Containerd、runc 192.168.31.36 k8s-master03 4C4G master kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、Containerd、runc 192.168.31.37 k8s-node01 4C4G worker kubelet、kube-proxy、Containerd、runc 192.168.31.38 k8s-node02 4C4G worker kubelet、kube-proxy、Containerd、runc 192.168.31.32 k8s-ha01 1C2G LB nginx、keepalived 192.168.31.33 k8s-ha02 1C2G LB nginx、keepalived 192.168.31.100 / / VIP(虚拟IP) 1.2 软件版本 软件名称 版本 备注 CentOS7 kernel版本:5.4.260 kubernetes v1.28.4 etcd v3.5.10 最新版本 calico v3.26.4 coredns v1.11.1 containerd 1.7.9 runc 1.1.10 nginx 1.21.6 YUM源默认 keepalived 1.3.5 YUM源默认 1.3 网络分配 网络名称 网段 备注 Node网络 192.168.31.0/24 Service网络 10.96.0.0/16 Pod网络 10.244.0.0/16 二、集群部署2.1主机准备2.1.1 主机名设置hostnamectl set-hostname xxx 2.1.2 主机与IP地址解析cat >> /etc/hosts << EOF 192.168.31.32 k8s-ha01 192.168.31.33 k8s-ha02 192.168.31.34 k8s-master01 192.168.31.35 k8s-master02 192.168.31.36 k8s-master03 192.168.31.37 k8s-node01 192.168.31.38 k8s-node02 EOF 2.1.3 主机安全设置2.1.3.1 关闭防火墙systemctl stop firewalld systmctl disable firewalld firewall-cmd --state 2.1.3.2 关闭selinuxsetenforce 0 sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config sestatus 2.1.4 交换分区设置swapoff -a sed -ri 's/.*swap.*/#&/' /etc/fstab echo "vm.swappiness=0" >> /etc/sysctl.conf sysctl -p 2.1.5 主机系统时间同步安装软件 yum -y install ntpdate 制定时间同步计划任务 crontab -e 0 */1 * * * ntpdate time1.aliyun.com 2.1.6 主机系统优化limit优化ulimit -SHn 65535 cat <<EOF >> /etc/security/limits.conf * soft nofile 655360 * hard nofile 131072 * soft nproc 655350 * hard nproc 655350 * soft memlock unlimited * hard memlock unlimited EOF 2.1.7 ipvs管理工具安装及模块加载为集群节点安装,负载均衡节点不用安装yum -y install ipvsadm ipset sysstat conntrack libseccomp 所有节点配置ipvs模块,在内核4.19+版本nf_conntrack_ipv4已经改为nf_conntrack, 4.18以下使用nf_conntrack_ipv4即可: modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack 创建 /etc/modules-load.d/ipvs.conf 并加入以下内容: cat >/etc/modules-load.d/ipvs.conf <<EOF ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp ip_vs_sh nf_conntrack ip_tables ip_set xt_set ipt_set ipt_rpfilter ipt_REJECT ipip EOF 2.1.8 加载containerd相关内核模块临时加载模块 modprobe overlay modprobe br_netfilter 永久性加载模块 cat > /etc/modules-load.d/containerd.conf << EOF overlay br_netfilter EOF 设置为开机启动 systemctl enable --now systemd-modules-load.service 2.1.9 Linux内核升级在所有节点中安装,需要重新操作系统更换内核。[root@wangmanyuan ~]# yum -y install perl [root@wangmanyuan ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org [root@wangmanyuan ~]# yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm [root@wangmanyuan ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn Available Packages elrepo-release.noarch 7.0-6.el7.elrepo elrepo-kernel kernel-lt.x86_64 5.4.260-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 5.4.260-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 5.4.260-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 5.4.260-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 5.4.260-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 5.4.260-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 5.4.260-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 6.6.1-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.6.1-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 6.6.1-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.6.1-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.6.1-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.6.1-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.6.1-1.el7.elrepo elrepo-kernel perf.x86_64 5.4.260-1.el7.elrepo elrepo-kern [root@wangmanyuan ~]# yum --enablerepo="elrepo-kernel" install kernel-lt.x86_64 [root@wangmanyuan ~]# grub2-set-default 0 [root@wangmanyuan ~]# grub2-mkconfig -o /boot/grub2/grub.cfg [root@wangmanyuan ~]# reboot 2.1.10 Linux内核优化cat <<EOF > /etc/sysctl.d/k8s.conf net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 fs.may_detach_mounts = 1 vm.overcommit_memory=1 vm.panic_on_oom=0 fs.inotify.max_user_watches=89100 fs.file-max=52706963 fs.nr_open=52706963 net.netfilter.nf_conntrack_max=2310720 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl =15 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_orphans = 327680 net.ipv4.tcp_orphan_retries = 3 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.ip_conntrack_max = 131072 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_timestamps = 0 net.core.somaxconn = 16384 EOF sysctl --system 所有节点配置完内核后,重启服务器,保证重启后内核依旧加载 reboot -h now 重启后查看ipvs模块加载情况: lsmod | grep --color=auto -e ip_vs -e nf_conntrack 重启后查看containerd相关模块加载情况: lsmod | egrep 'br_netfilter | overlay' 2.1.11 其它工具安装(选装)yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git lrzsz -y
2023年11月22日
13 阅读
0 评论
0 点赞
1
2
3