建议先升级一个内核

#升级内核
echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
apt update
apt -t buster-backports install linux-image-amd64 -y
apt -t buster-backports install linux-headers-amd64 -y
update-grub
#国外服务器可以同步一下国内时区
apt install ntpdate -y
timedatectl set-timezone Asia/Shanghai
ntpdate ntp1.aliyun.com

系统初始化

cat > ins-1.sh<<END
#!/bin/bash
apt-get install -y apt-transport-https ca-certificates curl
#签名需要的包
apt-get install -y gnupg2#添加阿里云源
cat > /etc/apt/sources.list.d/kubernetes.list <<EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" |sudo tee /etc/apt/sources.list.d/docker.listcurl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
apt-get update
apt-get install -y ipvsadm ipset sysstat conntrack libseccomp2
apt-get install kubectl kubeadm kubelet kubernetes-cni -y
apt install containerd -y
#关闭swap
swapoff -a && sysctl -w vm.swappiness=0
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
##################################
#limit 限制
[ ! -f /etc/security/limits.conf_bak ] && cp /etc/security/limits.conf{,_bak}
cat << EOF >> /etc/security/limits.conf
root soft nofile 655360
root hard nofile 655360
root soft nproc 655360
root hard nproc 655360
root soft core unlimited
root hard core unlimited* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
EOF[ ! -f /etc/systemd/system.conf_bak ] && cp /etc/systemd/system.conf{,_bak}
cat << EOF >> /etc/systemd/system.conf
DefaultLimitCORE=infinity
DefaultLimitNOFILE=655360
DefaultLimitNPROC=655360
EOF
END

内核初始化

cat << EOF >  /etc/sysctl.d/99-kube.conf
# https://www.kernel.org/doc/Documentation/sysctl/
#############################################################################################
# 调整虚拟内存
############################################################################################## Default: 30
# 0 - 任何情况下都不使用swap。
# 1 - 除非内存不足(OOM),否则不使用swap。
vm.swappiness = 0# 内存分配策略
#0 - 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
#1 - 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
#2 - 表示内核允许分配超过所有物理内存和交换空间总和的内存
vm.overcommit_memory=1# OOM时处理
# 1关闭,等于0时,表示当内存耗尽时,内核会触发OOM killer杀掉最耗内存的进程。
vm.panic_on_oom=0# vm.dirty_background_ratio 用于调整内核如何处理必须刷新到磁盘的脏页。
# Default value is 10.
# 该值是系统内存总量的百分比,在许多情况下将此值设置为5是合适的。
# 此设置不应设置为零。
vm.dirty_background_ratio = 5# 内核强制同步操作将其刷新到磁盘之前允许的脏页总数
# 也可以通过更改 vm.dirty_ratio 的值(将其增加到默认值30以上(也占系统内存的百分比))来增加
# 推荐 vm.dirty_ratio 的值在60到80之间。
vm.dirty_ratio = 60# vm.max_map_count 计算当前的内存映射文件数。
# mmap 限制(vm.max_map_count)的最小值是打开文件的ulimit数量(cat /proc/sys/fs/file-max)。
# 每128KB系统内存 map_count应该大约为1。 因此,在32GB系统上,max_map_count为262144。
# Default: 65530
vm.max_map_count = 2097152#############################################################################################
# 调整文件
#############################################################################################fs.may_detach_mounts = 1# 增加文件句柄和inode缓存的大小,并限制核心转储。
fs.file-max = 2097152
fs.nr_open = 2097152
fs.suid_dumpable = 0# 文件监控
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=524288
fs.inotify.max_queued_events=16384#############################################################################################
# 调整网络设置
############################################################################################## 为每个套接字的发送和接收缓冲区分配的默认内存量。
net.core.wmem_default = 25165824
net.core.rmem_default = 25165824# 为每个套接字的发送和接收缓冲区分配的最大内存量。
net.core.wmem_max = 25165824
net.core.rmem_max = 25165824# 除了套接字设置外,发送和接收缓冲区的大小
# 必须使用net.ipv4.tcp_wmem和net.ipv4.tcp_rmem参数分别设置TCP套接字。
# 使用三个以空格分隔的整数设置这些整数,分别指定最小,默认和最大大小。
# 最大大小不能大于使用net.core.wmem_max和net.core.rmem_max为所有套接字指定的值。
# 合理的设置是最小4KiB,默认64KiB和最大2MiB缓冲区。
net.ipv4.tcp_wmem = 20480 12582912 25165824
net.ipv4.tcp_rmem = 20480 12582912 25165824# 增加最大可分配的总缓冲区空间
# 以页为单位(4096字节)进行度量
net.ipv4.tcp_mem = 65536 25165824 262144
net.ipv4.udp_mem = 65536 25165824 262144# 为每个套接字的发送和接收缓冲区分配的最小内存量。
net.ipv4.udp_wmem_min = 16384
net.ipv4.udp_rmem_min = 16384# 启用TCP窗口缩放,客户端可以更有效地传输数据,并允许在代理方缓冲该数据。
net.ipv4.tcp_window_scaling = 1# 提高同时接受连接数。
net.ipv4.tcp_max_syn_backlog = 10240# 将net.core.netdev_max_backlog的值增加到大于默认值1000
# 可以帮助突发网络流量,特别是在使用数千兆位网络连接速度时,
# 通过允许更多的数据包排队等待内核处理它们。
net.core.netdev_max_backlog = 65536# 增加选项内存缓冲区的最大数量
net.core.optmem_max = 25165824# 被动TCP连接的SYNACK次数。
net.ipv4.tcp_synack_retries = 2# 允许的本地端口范围。
net.ipv4.ip_local_port_range = 2048 65535# 防止TCP时间等待
# Default: net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rfc1337 = 1# 减少tcp_fin_timeout连接的时间默认值
net.ipv4.tcp_fin_timeout = 15# 积压套接字的最大数量。
# Default is 128.
net.core.somaxconn = 32768# 打开syncookies以进行SYN洪水攻击保护。
net.ipv4.tcp_syncookies = 1# 避免Smurf攻击
# 发送伪装的ICMP数据包,目的地址设为某个网络的广播地址,源地址设为要攻击的目的主机,
# 使所有收到此ICMP数据包的主机都将对目的主机发出一个回应,使被攻击主机在某一段时间内收到成千上万的数据包
net.ipv4.icmp_echo_ignore_broadcasts = 1# 为icmp错误消息打开保护
net.ipv4.icmp_ignore_bogus_error_responses = 1# 启用自动缩放窗口。
# 如果延迟证明合理,这将允许TCP缓冲区超过其通常的最大值64K。
net.ipv4.tcp_window_scaling = 1# 打开并记录欺骗,源路由和重定向数据包
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1# 告诉内核有多少个未附加的TCP套接字维护用户文件句柄。 万一超过这个数字,
# 孤立的连接会立即重置,并显示警告。
# Default: net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_max_orphans = 65536# 不要在关闭连接时缓存指标
net.ipv4.tcp_no_metrics_save = 1# 启用RFC1323中定义的时间戳记:
# Default: net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_timestamps = 1# 启用选择确认。
# Default: net.ipv4.tcp_sack = 1
net.ipv4.tcp_sack = 1# 增加 tcp-time-wait 存储桶池大小,以防止简单的DOS攻击。
# net.ipv4.tcp_tw_recycle 已从Linux 4.12中删除。请改用net.ipv4.tcp_tw_reuse。
net.ipv4.tcp_max_tw_buckets = 14400
net.ipv4.tcp_tw_reuse = 1# accept_source_route 选项使网络接口接受设置了严格源路由(SSR)或松散源路由(LSR)选项的数据包。
# 以下设置将丢弃设置了SSR或LSR选项的数据包。
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0# 打开反向路径过滤
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1# 禁用ICMP重定向接受
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0# 禁止发送所有IPv4 ICMP重定向数据包。
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0# 开启IP转发.
net.ipv4.ip_forward = 1# 禁止IPv6
net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1# 要求iptables不对bridge的数据进行处理
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1# arp缓存
# 存在于 ARP 高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是 128
net.ipv4.neigh.default.gc_thresh1=2048
# 保存在 ARP 高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒。缺省值是 512
net.ipv4.neigh.default.gc_thresh2=4096
# 保存在 ARP 高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是 1024
net.ipv4.neigh.default.gc_thresh3=8192# 持久连接
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 10# conntrack表
net.nf_conntrack_max=1048576
net.netfilter.nf_conntrack_max=1048576
net.netfilter.nf_conntrack_buckets=262144
net.netfilter.nf_conntrack_tcp_timeout_fin_wait=30
net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
net.netfilter.nf_conntrack_tcp_timeout_close_wait=15
net.netfilter.nf_conntrack_tcp_timeout_established=300#############################################################################################
# 调整内核参数
############################################################################################## 地址空间布局随机化(ASLR)是一种用于操作系统的内存保护过程,可防止缓冲区溢出攻击。
# 这有助于确保与系统上正在运行的进程相关联的内存地址不可预测,
# 因此,与这些流程相关的缺陷或漏洞将更加难以利用。
# Accepted values: 0 = 关闭, 1 = 保守随机化, 2 = 完全随机化
kernel.randomize_va_space = 2# 调高 PID 数量
kernel.pid_max = 65536
kernel.threads-max=30938# coredump
kernel.core_pattern=core# 决定了检测到soft lockup时是否自动panic,缺省值是0
kernel.softlockup_all_cpu_backtrace=1
kernel.softlockup_panic=1
EOF
sysctl --system
sysctl -p /etc/sysctl.d/99-kube.conf

启用ipvs

tee ins-ipvs.sh<<-'EOF'
#!/bin/bashapt-get install -y ipvsadm ipset sysstat conntrack libseccomp2:> /etc/modules-load.d/ipvs.conf
module="ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack br_netfilter"for kernel_module in $module; do/sbin/modinfo -F filename $kernel_module > /dev/null 2>&1 || echo $kernel_module >> /etc/modules-load.d/ipvs.confdonemodprobe br_netfilteripvsadm --clear
EOF

最好配置containerd

cat<<END>installx.sh
#!/bin/bash
containerd config default > /etc/containerd/config.toml
sed -i "s#k8s.gcr.io/pause:3.2#registry.aliyuncs.com/google_containers/pause:3.5#g" /etc/containerd/config.toml
sed -i "s#https://registry-1.docker.io#https://0k0953tv.mirror.aliyuncs.com#g" /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd
systemctl status containerd.service
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.23.0/crictl-v1.23.0-linux-amd64.tar.gz
tar zxvf crictl-v1.23.0-linux-amd64.tar.gz -C /usr/local/bin
cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF
crictl config runtime-endpoint unix:/run/containerd/containerd.sock
systemctl restart containerd
echo "测试拉取镜像"
crictl pull nginx
crictl images
END

初始化集群

kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
  • 最后安装网卡
cilium install

设置kubectl命令补全

echo 'source <(kubectl completion bash)' >>~/.bashrc
source ~/.bashrc

k8s修改端口访问范围

编辑

vim /etc/kubernetes/manifests/kube-apiserver.yaml

添加以下参数,无需重启

- command:- kube-apiserver# 添加如下一行- --service-node-port-range=80-65535

Debian 11快速部署K8S相关推荐

  1. DockerK8s---通过kubeadm快速部署K8s

    文章目录 Docker&K8s---通过kubeadm快速部署K8s 环境准备 环境初始化 开始安装 安装docker 添加kubernetes的yum软件源 安装kubeadm,kubele ...

  2. 2、使用 kubeadm 方式快速部署K8S集群

    文章目录 一.kubernetes 官方提供的三种部署方式 二.使用kubeadm搭建k8s集群 2.1 基础环境设置 2.2 安装Docker 2.3 添加kubernetes软件源 2.4 安装k ...

  3. k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA

    作者:杨紫熹 原文链接: https://fs.tn/post/PmaL-uIiQ/ RKE全称为Rancher Kubernetes Engine,是一款经过CNCF认证的开源Kubernetes发 ...

  4. 使用Kubeadm快速部署K8S集群

    一.简介 Kubeadm 是官方社区推出的一个用于快速部署 Kubernetes 集群的工具,能通过指令快速完成一个 Kubernetes 集群的部署.需要注意的是,Kubeadm 方式部署的 Kub ...

  5. 快速部署k8s单机版

    先准备好一台centos7虚拟机(2cpu,2g内存),可以参考https://blog.csdn.net/weixin_42182501/article/details/104346125 k8s单 ...

  6. Kubeadm快速部署k8s

    目录 一.环境准备 1.1 所有节点,关闭防火墙规则,关闭selinux,关闭swap交换 1.2 修改主机名 1.3 所有节点修改hosts文件 1.4 调整内核参数 1.5 生效参数 二.所有节点 ...

  7. 快速部署 k8s 集群

    部署3个节点的k8s 集群,三个虚机的信息如下所示: 主机名 ip地址 角色 系统os k8s-master 192.168.1.38 worker Ubuntu 18.04.2 LTS k8s-no ...

  8. cni k8s 插件安装_使用kind来快速部署k8s环境

    啥是kind kind 即 Kubernetes In Docker,顾名思义,就是将 k8s 所需要的所有组件,全部部署在一个docker容器中,是一套开箱即用的 k8s 环境搭建方案.使用 kin ...

  9. 使用minikube快速部署k8s集群

    本文个人博客地址:http://www.huweihuang.com/article/kubernetes/install-k8s-by-minikube/ 以下内容基于Linux系统,特别为Ubun ...

最新文章

  1. Activiti——管理流程定义(四)
  2. Java删除指定文件夹下的文件和目录
  3. mysql级联查询_mysql 各种级联查询后更新(update select)
  4. 腾讯技术直播间 | 走进小程序云开发
  5. python查找公共前缀_Python实现查找字符串数组最长公共前缀示例
  6. 物理史2000年来最豪华阵容也是最为精彩的对决!
  7. Qt应用程序只运行一个实例
  8. 收藏一篇好文章,关于云计算和大数据的
  9. 去除input的自动填充色
  10. CarMaker与NS3联合仿真平台--安装
  11. 攻击者利用7号信令(SS7)中的漏洞从德国银行偷取钱财
  12. mysql简述cs结构与bs结构的区别_什么是BS和CS结构?
  13. HttpClient发送POST和GET请求
  14. 颗粒粒径的众多测试方法
  15. Adobe Illustrator AI撤回和取消撤回
  16. 将Chrome浏览器网页背景改成豆绿色
  17. gtbook安装使用教程
  18. 计算机程序中的堆和栈的区别,内存中的堆与栈(stack)和栈的区别
  19. 用c语言实现扫雷小游戏。
  20. python自守数_自守数-随心随性无为而为-51CTO博客

热门文章

  1. element重置表单
  2. python 3des加密_使用Python进行3DES加密-pyDes
  3. [转帖] 越读越有味的句子 绝对经典语录 人生感悟格言
  4. 56岁梁实第27次参加高考:希望是最后一次,目标考上重点本科院校
  5. 【算术】 河内塔需要多少步
  6. JavaWeb阶段题库
  7. satisfactory 幸福工厂 118201
  8. 计算机网络 IPv4地址 最详的详解!!!
  9. hive on spark执行insert overwrite非常慢
  10. html点击屏幕有红心效果,页面点击小红心js实现代码_鹿岛_前端开发者