前言:
眼前看官们对“centosnetsnmp”大概比较关切,兄弟们都想要知道一些“centosnetsnmp”的相关内容。那么小编也在网摘上搜集了一些关于“centosnetsnmp””的相关资讯,希望我们能喜欢,兄弟们一起来了解一下吧!Kubernetes有两种方式,第一种是二进制的方式,可定制但是部署复杂容易出错;第二种是kubeadm工具安装,部署简单,不可定制化。本次我们部署kubeadm版。
1、部署系统版本
软件
版本
CentOS
CentOS Linux release 7.7.1908 (Core)
Docker
19.03.12
Kubernetes
V1.20.3
Flannel
V0.13.0
Kernel-lm
kernel-lt-4.4.245-1.el7.elrepo.x86_64.rpm
Kernel-lm-devel
kernel-lt-devel-4.4.245-1.el7.elrepo.x86_64.rpm
2、节点规划
Hostname
Ip
内核版本
k8s-master-01
192.168.12.11
4.4.245-1.el7.elrepo.x86_64
K8s-node-01
192.168.12.12
4.4.245-1.el7.elrepo.x86_64
K8s-node-02
192.168.12.13
4.4.245-1.el7.elrepo.x86_64
3、关闭selinux
# 永久关闭sed -i 's#enforcing#disabled#g' /etc/selinux/config# 零时关闭setenforce 0
4、关闭swap分区
一旦触发swap,会导致系统性能急剧下降,所以一般情况下,K8S要求关闭swap分区。
swapoff -ased -i.bak 's/^.*centos-swap/#&/g' /etc/fstabecho 'KUBELET_EXTRA_ARGS="--fail-swap-on=false"' > /etc/sysconfig/kubelet5、配置国内yum源
默认情况下,CentOS使用的是官方yum源,所以一般情况下在国内使用是非常慢,所以我们可以替换成国内的一些比较成熟的yum源,例如:清华大学镜像源,网易云镜像源等等。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl -o /etc/yum.repos.d/CentOS-Base.repo -o /etc/yum.repos.d/epel.repo 刷新缓存yum makecache# 更新系统yum update -y --exclud=kernel*6、升级内核版本
由于Docker运行需要较新的系统内核功能,例如ipvs等等,所以一般情况下,我们需要使用4.0+以上版本的系统内核。
# 内核要求是4.18+,如果是`CentOS 8`则不需要升级内核wget ;安装内核yum localinstall -y kernel-lt*# 设置内核默认启动grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg# 查看内核启动列表grubby --default-kernel# 重启使其生效reboot7、安装ipvs
ipvs是系统内核中的一个模块,其网络转发性能很高。一般情况下,我们首选ipvs。
# 安装IPVSyum install -y conntrack-tools ipvsadm ipset conntrack libseccomp# 加载IPVS模块cat > /etc/sysconfig/modules/ipvs.modules <<EOF#!/bin/bashipvs_modules="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 nf_conntrack"for kernel_module in \${ipvs_modules}; do /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1 if [ $? -eq 0 ]; then /sbin/modprobe \${kernel_module} fidoneEOFchmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs8、内核参数优化
内核参数优化的主要目的是使其更适合kubernetes的正常运行。
cat > /etc/sysctl.d/k8s.conf << EOFnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1fs.may_detach_mounts = 1vm.overcommit_memory=1vm.panic_on_oom=0fs.inotify.max_user_watches=89100fs.file-max=52706963fs.nr_open=52706963net.ipv4.tcp_keepalive_time = 600net.ipv4.tcp.keepaliv.probes = 3net.ipv4.tcp_keepalive_intvl = 15net.ipv4.tcp.max_tw_buckets = 36000net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp.max_orphans = 327680net.ipv4.tcp_orphan_retries = 3net.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_syn_backlog = 16384net.ipv4.ip_conntrack_max = 65536net.ipv4.tcp_max_syn_backlog = 16384net.ipv4.top_timestamps = 0net.core.somaxconn = 16384EOF# 立即生效sysctl --system9、安装基础软件
安装一些基础软件,是为了方便我们的日常使用。
yum install wget expect vim net-tools ntp bash-completion ipvsadm ipset jq iptables conntrack sysstat libseccomp -y10、关闭防火墙
关闭防火墙是为了方便日常使用,不会给我们造成困扰。在生成环境中建议打开。
systemctl disable --now firewalld11、安装Docker
Docker主要是作为k8s管理的常用的容器工具之一。
11.1、 CentOS7版
yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo install docker-ce -ysudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [";]}EOFsudo systemctl daemon-reload ; systemctl restart docker;systemctl enable --now docker.service
11.2、 CentOS8版
wget install containerd.io-1.2.13-3.2.el7.x86_64.rpm -yyum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo install docker-ce -ysudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [";]}EOFsudo systemctl daemon-reload ; systemctl restart docker;systemctl enable --now docker.service12、同步集群时间
在集群当中,时间是一个很重要的概念,一旦集群当中某台机器时间跟集群时间不一致,可能会导致集群面临很多问题。所以,在部署集群之前,需要同步集群当中的所有机器的时间。
12.1、CentOS7版
yum install ntp -yln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeecho 'Asia/Shanghai' > /etc/timezonentpdate time2.aliyun.com# 写入定时任务*/1 * * * * ntpdate time2.aliyun.com > /dev/null 2>&112.2、CentOS8版
rpm -ivh install wntp -yln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeecho 'Asia/Shanghai' > /etc/timezonentpdate time2.aliyun.com# 写入定时任务*/1 * * * * ntpdate time2.aliyun.com > /dev/null 2>&113、配置Kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl= 0yum install -y kubelet kubeadm kubectlsystemctl enable kubelet && systemctl start kubele14、节点初始化
# 准备镜像docker pull registry.cn-hangzhou.aliyuncs.com/k8sos/coredns:v1.8.0docker tag registry.cn-hangzhou.aliyuncs.com/k8sos/coredns:v1.8.0 registry.cn-hangzhou.aliyuncs.com/k8sos/coredns/coredns:v1.8.0 # 初始化kubeadm init \--image-repository=registry.cn-hangzhou.aliyuncs.com/k8sos \--kubernetes-version=v1.21.3 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/1615、配置kubernetes用户信息
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config16、增加命令提示
yum install -y bash-completionsource /usr/share/bash-completion/bash_completionsource <(kubectl completion bash)echo "source <(kubectl completion bash)" >> ~/.bashrc17、安装集群网络插件
kubernetes需要使用第三方的网络插件来实现kubernetes的网络功能,这样一来,安装网络插件成为必要前提;第三方网络插件有多种,常用的有flanneld、calico和cannel(flanneld+calico),不同的网络组件,都提供基本的网络功能,为各个Node节点提供IP网络等。
kubectl apply -f
恭喜小主又获得一份非常有价值的干货
更多资料请关注微信公众号:山河编程
感谢您的关注,小编会努力把最好的资料都呈现给您!
谢谢啦!
标签: #centosnetsnmp #centos7yumlnmp