• 虚拟机安装k8s(1.20.2版本)集群,从0-1


    1、环境及配置

    1、节点说明

    一主两从

    192.168.31.200 k8s-master

    192.168.31.201 k8s-node1

    192.168.31.202 k8s-node2

    2、配置说明

    主节点

    2核 4g 20g

    从节点

    2核 4g 20g

    3、关闭selinux

    永久关闭selinux

    sed -i 's/enforcing/disabled/g' /etc/selinux/config
    
    • 1

    更改后需重启系统

    reboot
    
    • 1

    4、关闭防火墙

    systemctl stop firewalld && systemctl disable firewalld
    
    • 1

    5、关闭swap内存分区

    永久关闭swap分区

    echo vm.swappiness=0 >> /etc/sysctl.conf && sysctl -p
    vim /etc/fstab
    
    • 1
    • 2

    注释掉带有swap分区这行

    在这里插入图片描述

    swappiness参数的含义

    • swappiness是Linux的一个内核参数,控制系统在进行swap时,内存使用的相对权重。
    • swappiness参数值可设置范围在0-100之间。此参数值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就反过来,使内核更多的使用swap空间。
    • Centos系统此参数的默认值是30,即当物理内存低于70%(70=100-30)时,开始使用swap分区。设置为100可能会影响整体性能,如果内存充足,就可以
    • 将这个值设置很低。甚至为0。

    swappiness=0

    修改完毕后需要重启系统

    reboot
    
    • 1

    6、修改各个节点hostname

    命令

    hostnamectl set-hostname [hostname]
    
    • 1

    在这里插入图片描述

    7、为每个节点添加host解析

    echo "192.168.31.200 k8s-master" >> /etc/hosts && echo "192.168.31.201 k8s-node1" >> /etc/hosts && echo "192.168.31.202 k8s-node2" >> /etc/hosts
    
    • 1

    8、将桥接的 IPv4 流量传递到 iptables 的链

    cat > /etc/sysctl.d/k8s.conf << EOF 
     net.bridge.bridge-nf-call-ip6tables = 1
     net.bridge.bridge-nf-call-iptables = 1
     EOF
    
    • 1
    • 2
    • 3
    • 4

    使配置生效

    sysctl --system
    
    • 1

    9、同步时间

    cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    ntpdate asia.pool.ntp.org
    
    • 1
    • 2

    提示是否覆盖选择是

    10、添加kubernetes阿里云yum源

    cat > /etc/yum.repos.d/kubernetes.repo << EOF
     [kubernetes]
     name=Kubernetes
     baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
     enabled=1
     gpgcheck=0
     repo_gpgcheck=0
     gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
     EOF
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2、开始安装

    1、安装docker(公开版20.10.17)

    1、安装软件依赖包

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    • 1

    2、设置仓库(阿里云)

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1

    3、安装docker engine-community

    安装最新版docker engine-community

    如果提示接受 GPG 密钥,请选是。

    yum install docker-ce docker-ce-cli containerd.io
    
    • 1

    如果要安装特定版本,可以从存储库中列出可用版本,指定安装

    yum list docker-ce --showduplicates | sort -r
    
    • 1

    在这里插入图片描述

    指定版本安装方式

    该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-20.10.9-3.el7。

    yum install docker-ce-20.10.9-3.el7 docker-ce-cli-20.10.9-3.el7 containerd.io
    
    • 1

    4、启动docker(添加开机自启动)

    systemctl start docker && systemctl enable docker
    
    • 1

    5、更改docker启动参数cgroups为systemd

    vim /etc/docker/daemon.json
    
    • 1

    内容如下

    {
    “debug”: true,
    “registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”,“https://registry.cn-hangzhou.aliyuncs.com”],
    “exec-opts”: [“native.cgroupdriver=systemd”],
    “storage-driver”: “overlay2”
    }

    启动参数说明,官方文档

    https://docs.docker.com/engine/reference/commandline/dockerd/#options

    更改后需重启docker

    systemctl daemon-reload && systemctl restart docker
    
    • 1

    2、安装kubeadm、kubectl、kubelet(1.20.2)

    yum install -y kubeadm-2.20.2 kubelet-2.20.2 kubectl-2.20.2
    
    • 1

    3、初始化master节点(192.168.31.200节点执行)

     kubeadm init \
    --apiserver-advertise-address=192.168.31.200 \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.20.2 \
    --service-cidr=10.96.0.0/12 \
    --pod-network-cidr=10.244.0.0/16 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行完毕后,导入配置

    如果是root用户

    export KUBECONFIG=/etc/kubernetes/admin.conf
    
    • 1

    如果是普通用户

    mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    • 1

    4、工作节点加入集群

    在master节点init完毕之后会有一行join命令,复制到各个节点去加入即可

    在这里插入图片描述

    kubeadm join 192.168.31.200:6443 --token xtkoy4.s8s8ulu8cve05qvl \
        --discovery-token-ca-cert-hash sha256:9f7217cac33ed25549daa998f0bdc3702a63a4d9f7677f3293dd3372c094a43f
    
    • 1
    • 2

    5、安装网络插件(calico 3.18.0)

    https://docs.projectcalico.org/v3.18/manifests/calico.yaml

    需要先在浏览器下载,再通过rz上传到虚拟机

    kubectl apply -f calico.yaml
    
    • 1

    至此k8s集群部署完毕,使用kubectl get nodes可以看到k8s节点状态都是就绪状态

  • 相关阅读:
    第三节:运算符【java】
    Unity 3D模型展示框架篇之Addressables+ILRuntime热更(完结篇)
    【杭电多校第四场 B题】最短路图+缩点dp
    go cpu、内存监控、性能分析:PProf
    C++ 时间函数整理详解
    【用户画像】数据层mybatis、mabatis-plus介绍和使用,多数据源配置、生成分群基本信息(源码实现)
    深度学习远程炼丹:一文离线完成ubuntu+docker+pycharm环境配置
    JAVA实操代码练习1
    数据结构与算法之排序: 选择排序 (Javascript版)
    什么是混合项目管理模式,以及价值
  • 原文地址:https://blog.csdn.net/qq_42561919/article/details/126255990