美文网首页
离线部署单机kubenetes-1.28.4

离线部署单机kubenetes-1.28.4

作者: mini鱼 | 来源:发表于2023-11-23 18:59 被阅读0次

    环境准备

    IP、主机名设置

    • 使用静态IP
    [root@localhost ~]# cd /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]# cat ifcfg-ens33
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.177.138
    NETMASK=255.255.255.0
    
    • 修改主机名
    hostnamectl set-hostname k8s-test
    exec bash
    echo "192.168.177.138  k8s-test" >> /etc/hosts
    

    关闭swap分区

    # 如果有的话,关闭swap分区
    swapoff -a
    vi /etc/fstab # 永久关闭swap分区,注释掉fstab中包含swap的这一行
    # /dev/mapper/centos-swap swap                    swap    defaults        0 0
    

    关闭firewalld,selinux

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    sudo setenforce 0
    sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    

    转发 IPv4 并让 iptables 看到桥接流

    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF
    
    sudo modprobe overlay
    sudo modprobe br_netfilter
    
    # 设置所需的 sysctl 参数,参数在重新启动后保持不变
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables  = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward                 = 1
    EOF
    
    # 应用 sysctl 参数而不重新启动
    sudo sysctl --system
    
    lsmod | grep br_netfilter
    lsmod | grep overlay
    
    sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward
    
    # 如果init时仍提示iptables错误请执行
    echo "1">/proc/sys/net/bridge/bridge-nf-call-iptables
    echo "1">/proc/sys/net/ipv4/ip_forward
    

    重启服务器

    如果selinux之前是开的,需要重启服务器


    一、 部署包准备

    tar zxvf kubenetes-1.28.4-oe2203sp2.tar.gz

    二、 安装docker及cri-docker

    • 安装软件包
    cd kubenetes-1.28.4-oe2203sp2/docker-ce/
    rpm -ivh *.rpm
    
    image.png
    • 修改配置文件
    sudo mkdir -p /etc/docker
    scp daemon.json /etc/docker
    scp cri-docker.service  /usr/lib/systemd/system/cri-docker.service 
    
    • 启动服务
    systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker 
    systemctl status docker cri-docker
    

    三、安装kubenetes

    1、安装相关rpm包

    cd ../kubenetes-1.28.4-rpm/
    rpm -ivh *.rpm
    
    image.png

    2、启动kubelet

    #systemctl start kubelet
    systemctl enable kubelet
    

    3、导入镜像

    cd ../kubenetes-1.28.4-images/
    for i in `ls *.tar`; do docker load -i $i ;done
    
    image.png
    4、初始化集群
    替换其中的 --node-name,--apiserver-advertise-address
    kubeadm init --node-name=k8s-test \
    --image-repository=registry.aliyuncs.com/google_containers \
    --cri-socket=unix:///var/run/cri-dockerd.sock \
    --apiserver-advertise-address=192.168.177.138 \
    --pod-network-cidr=10.244.0.0/16 \
    --service-cidr=10.96.0.0/12
    
    image.png
    • 根据提示执行命令
    配置环境变量
    # 非root用户请执行
    $ mkdir -p $HOME/.kube
    $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    $ sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    # root用户直接执行
    # 临时生效,重启后失效,不推荐。
    $ export KUBECONFIG=/etc/kubernetes/admin.conf 
    # 永久生效,执行kubeadm reset后再次init也无需再次执行这条命令
    $ echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >>  ~/.bash_profile 
    $ source ~/.bash_profile
    # 添加节点命令:
    kubeadm join 192.168.177.138:6443 --token ybmcig.iv403delaz5p5vfe \
            --discovery-token-ca-cert-hash sha256:008183ca74d9f7577684566ca53e801205f0de54ee225deb4fc4d015c828608a
    

    5、安装网络组件

    kubectl apply -f kube-flannel.yml

    相关文章

      网友评论

          本文标题:离线部署单机kubenetes-1.28.4

          本文链接:https://www.haomeiwen.com/subject/qlsgwdtx.html