龙空技术网

最新版kubernetes 1.21.3部署文档

技术生态圈 1033

前言:

眼前看官们对“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/kubelet
5、配置国内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# 重启使其生效reboot
7、安装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_vs
8、内核参数优化

内核参数优化的主要目的是使其更适合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 --system
9、安装基础软件

安装一些基础软件,是为了方便我们的日常使用。

yum install wget expect vim net-tools ntp bash-completion ipvsadm ipset jq iptables conntrack sysstat libseccomp -y
10、关闭防火墙

关闭防火墙是为了方便日常使用,不会给我们造成困扰。在生成环境中建议打开。

systemctl disable --now firewalld
11、安装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.service
12、同步集群时间

在集群当中,时间是一个很重要的概念,一旦集群当中某台机器时间跟集群时间不一致,可能会导致集群面临很多问题。所以,在部署集群之前,需要同步集群当中的所有机器的时间。

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>&1
12.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>&1
13、配置Kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=  0yum install -y kubelet kubeadm kubectlsystemctl enable kubelet && systemctl start kubele
14、节点初始化
# 准备镜像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/16
15、配置kubernetes用户信息
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
16、增加命令提示
yum install -y bash-completionsource /usr/share/bash-completion/bash_completionsource <(kubectl completion bash)echo "source <(kubectl completion bash)" >> ~/.bashrc
17、安装集群网络插件

kubernetes需要使用第三方的网络插件来实现kubernetes的网络功能,这样一来,安装网络插件成为必要前提;第三方网络插件有多种,常用的有flanneld、calico和cannel(flanneld+calico),不同的网络组件,都提供基本的网络功能,为各个Node节点提供IP网络等。

kubectl apply -f 

恭喜小主又获得一份非常有价值的干货

更多资料请关注微信公众号:山河编程

感谢您的关注,小编会努力把最好的资料都呈现给您!

谢谢啦!

标签: #centosnetsnmp #centos7yumlnmp