K8s搭建

作者: 死鱼 | 来源:发表于2020-01-08 16:44 被阅读0次

    引用:Kubernetes(一) 跟着官方文档从零搭建K8S

    安装

    阿里源配置

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

    然后安装K8s

    setenforce 0
    yum install -y kubelet kubeadm kubectl
    systemctl enable kubelet && systemctl start kubelet
    

    修改网络配置

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

    配置启动

    master节点配置

    1、生成初始化配置文件
    kubeadm config print init-defaults > kubeadm-init.yaml
    
    1. advertiseAddress要改成自己的IP
    2. 改源:将imageRepository: k8s.gcr.io修改为imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
    2、下载镜像
    kubeadm config images pull --config kubeadm-init.yaml
    
    3、初始化
    kubeadm init --config kubeadm-init.yaml
    
    image.png

    然后根据警告 启动一下kubelet.service

    systemctl enable kubelet.service
    

    根据报错,发现iptables没设置为1,设置一下即可


    设置iptable

    根据报错,关一下swap


    关闭swap
    启动完毕
    image.png

    最后两行需要保存下来,worker节点接入的时候,需要配置这个hash

    4、配置环境,让当前用户可以使用kubectl
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    测试:获取节点信息

    kubectl get node
    
    image.png

    NotReady是因为还没配置网络

    5、网络配置

    下载描述文件

    wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
    

    获取配置文件中的子网网段信息,修改calico.yaml,将192.168.0.0/16修改为10.96.0.0/12。此处calico.yaml的ip必须与kubeadm-init保持一致。

    cat kubeadm-init.yaml | grep serviceSubnet:
    
    image.png
    6、初始化网络
    kubectl apply -f calico.yaml
    

    然后节点就已经ready了


    image.png

    安装好后再次启动:

    Master初始化

    // 记得关闭swap
    swapoff -a
    
    // 启动kubelet
    systemctl enable kubelet
    systemctl start kubelet
    
    // 写入启动配置
    kubeadm config print init-defaults > kubeadm-init.yaml
    /* 修改配置内容 */
    advertiseAddress : {localIP}
    imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
    
    // 初始化master节点
    kubeadm init --config xxx.config --ignore-preflight-errors=all
    

    Worker节点

    // 记得关闭swap
    swapoff -a
    
    // 启动kubelet (好像不启动也行)
    systemctl enable kubelet
    systemctl start kubelet
    
    // 加入Master节点网络
    ...... Master启动时候会给token出来,用那句kubeadm join ...
    

    移除节点、添加节点

    引用:kubernetes集群节点的移除与加入
    重点:

    kubeadm token create --print-join-command
    

    遇到的问题

    [kubelet-check] Initial timeout of 40s passed.
    

    超时,引用解决方案:https://blog.csdn.net/qq_19107011/article/details/92802571

    相关文章

      网友评论

          本文标题:K8s搭建

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