当前位置 博文首页 > u011767319的博客:k8s安装-个人笔记

    u011767319的博客:k8s安装-个人笔记

    作者:[db:作者] 时间:2021-09-23 13:34

    简介

    单机docker方便使用。但多台机子管理起来就不方便。
    本人搭建了两次,搭建出来了。(不要在意,图片ip地址不一致问题)
    分享于我的粉丝们

    k8s的整体架构

    在这里插入图片描述

    命令集

    #重置k8s
    kubeadm reset
    #重新获取token
    kubeadm token create --print-join-command
    

    预先准备三台服务器(或虚拟机)

    k8s-master
    k8s-node1
    k8s-node2

    Kubernetes部署环境要求

    (1)一台或多台机器,操作系统CentOS 7.x-86_x64

    (2)硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+;

    (3)集群内各个机器之间能相互通信;

    (4)集群内各个机器可以访问外网,需要拉取镜像;

    (5)禁止swap分区;

    效果:
    在这里插入图片描述
    如何配置我就不详细描述了,不懂的百度

    Kubernetes部署环境准备

    # 关闭防火墙
    
    systemctl stop firewalld
    
    systemctl disable firewalld
    
    # 关闭selinux
    
    sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久
    
    setenforce 0  #临时
    
    # 关闭swap(k8s禁止虚拟内存以提高性能)
    
    sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
    
    swapoff -a #临时
    
    # 在master添加hosts
    
    cat >> /etc/hosts << EOF
    
    192.168.95.247 k8smaster
    
    192.168.95.248 k8snode1
    
    192.168.95.249 k8snode2
    
    EOF
    
    # 设置网桥参数
    
    cat > /etc/sysctl.d/k8s.conf << EOF
    
    net.bridge.bridge-nf-call-ip6tables = 1
    
    net.bridge.bridge-nf-call-iptables = 1
    
    EOF
    
    sysctl --system  #生效
    
    # 时间同步
    
    yum install ntpdate -y
    
    ntpdate time.windows.com
    

    Kubernetes安装具体步骤

    安装docker,本人的另外一篇文章

    那么接下来需要搭建:kubeadm、kubelet、kubectl

    先设置源头

    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    
    [kubernetes]
    
    name=Kubernetes
    
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    
    enabled=1
    
    gpgcheck=0
    
    repo_gpgcheck=0
    
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    
    EOF
    

    安装

    yum install kubelet-1.22.2 kubeadm-1.22.2 kubectl-1.22.2 -y
    

    然后执行

    systemctl enable kubelet.service
    

    不然会提示警告;

    yum list installed | grep kubelet
    
    yum list installed | grep kubeadm
    
    yum list installed | grep kubectl
    

    查看安装的版本: kubelet --version

    Kubelet:运行在cluster所有节点上,负责启动POD和容器;

    Kubeadm:用于初始化cluster的一个工具;

    Kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件;

    以上每台机子都要运行一遍

    部署Kubernetes Master主节点

    kubeadm init --apiserver-advertise-address=192.168.95.247 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.22.2 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

    此命令在master机器上执行
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

    安装网络插件(只需要master安装就行了):

    拉取:

    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    没有安装wget的话,安装一下:

    yum install wget
    

    拉取不了的话,有以下解决办法

    先设置一下 hosts

    cat >> /etc/hosts << EOF
    199.232.68.133 raw.githubusercontent.com
    EOF
    

    重新执行拉取操作。
    下载完之后,创建并查看:

    #创建
    kubectl  create -f kube-flannel.yml
    #查看
    kubectl  get pod -n kube-system
    

    在244和245机子下分别运行:

    运行243初始话的加入命令

    kubeadm join 192.168.95.247:6443 --token wsfwk9.cfncltj3zmng7in2 \
    	--discovery-token-ca-cert-hash sha256:e63baea55e3d3a22ba1e71327e8addcb90adb422db2459ac57f354a426cd05da
    

    效果:
    在这里插入图片描述
    查询一下:

    kubectl get nodes
    

    效果:
    在这里插入图片描述

    NotReady 表示没准备好,需要等一下
    Ready 就表示准备好了

    在这里插入图片描述

    cs