美文网首页
Kubernetes安装

Kubernetes安装

作者: engineer_tang | 来源:发表于2021-02-10 18:19 被阅读0次

    1. 安装要求

    Master: 至少4core和16GB内存
    Node: 至少2core和4GB内存
    etcd:3.0版本及以上
    Docker: 18.03版本及以上

    2. 安装前准备说明

    Kubernetes需要容器运行时的支持,例如Docker、Containerd、CRI-O和frakti。

    2.1 关闭防火墙服务

    systemctl disable firewalld
    systemctl stop firewalld
    

    2.2 禁用主机SELinux

    setenforce 0
    

    或修改文件/etc/sysconfig/selinux

    SELINUX=enforcing
    /*改为*/
    SELINUX=disabled
    

    然后重启linux

    3. 使用kubeadm安装Kubernetes

    3.1 配置kubernetes源

    cd /etc/yum.repos.d/
    vim kubernetes.repo
    

    aaa

    [kubernetes]
    name=Kubernetes Repository
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=0
    

    3.2. 安装kubeadm和相关工具

    使用yum install命令安装kubeadm和相关工具:

    yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    

    启动kubelet服务

    systemctl enable docker && systemctl start docker
    systemctl enable kubelet && systemctl start kubelet
    

    3.4 kubeadm config

    提供配置文件功能用于复杂定制。将配置文件以ConfigMap的形式保存到集群中,便于后续的查询和升级工作。
    kubeadm config子命令介绍:

    kubeadm config upload from-file: 由配置文件上传到集群中生成ConfigMap。
    kubeadm config upload from-flags: 由配置参数生成ConfigMap
    kubeadm config view: 查看当前集群中的配置值。 
    kubeadm config print init-defaults: 输出kubeadm init默认参数文件的内容。
    kubeadm config print join-defaults: 输出kubeadm join默认参数文件的内容。
    kubeadm config migrate: 在新旧版本之间进行配置转换。
    kubeadm config images list: 列出所需的镜像列表。
    kubeadm config images pull: 拉取镜像到本地。
    

    生成kubeadm配置文件

    kubeadm config print init-defaults > kubeadm.conf
    

    修改imageRepository为“registry.cn-hangzhou.aliyuncs.com/google_containers”,保存后,然后拉取镜像

    kubeadm config images pull --config kubeadm.conf
    

    修改pull images的tag
    从国内镜像网站下载的Images需要re tag到k8s.gcr.io

    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.20.0 k8s.gcr.io/kube-scheduler:v1.20.0
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.20.0
    
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.20.0 k8s.gcr.io/kube-proxy:v1.20.0
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.20.0
    
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.20.0 k8s.gcr.io/kube-controller-manager:v1.20.0
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.20.0
    
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.20.0 k8s.gcr.io/kube-apiserver:v1.20.0
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.20.0
    
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
    
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0 k8s.gcr.io/etcd:3.4.13-0
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
    
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
    
    

    关闭交换分区

    swapoff -a
    vim /etc/fstab
    

    3.5 部署Master节点

    kubeadm init --config /root/kubeadm.conf
    
    image.png

    解决办法:
    对kubernetes配置文件的“advertiseAddress”参数改为内网IP,如下图所示:


    image.png

    复制配置文件到普通用户的HOME目录下:

    mkdir -p $HOME/.kube
    cp -i kubeadm.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    

    11

    cat <<EOF >> /root/.bashrc
    export KUBECONFIG=/etc/kubernetes/admin.conf
    EOF
    source /root/.bashrc
    

    3.6 部署Node节点

    安装kubeadm和相关工具

    yum install kubelet kubeadm --disableexcludes=kubernetes
    

    启动kubelet服务

    systemctl enable docker && systemctl start docker
    systemctl enable kubelet && systemctl start kubelet
    

    3.7 安装网络插件

    kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
    

    3.7 问题处理

    1. 节点加入不了问题处理?
      进入"/usr/lib/systemd/system/kubelet.service.d"给节点命名“hostname-override=node1”,打开文件“vim 10-kubeadm.conf”。


      image.png
    2. 报错“The connection to the server localhost:8080 was refused - did you specify the right host or port?”?
      从主节点“/etc/kubernetes/admin.conf”拷贝到从节点的相同目录。然后执行11下的操作


      image.png

    参考:https://blog.csdn.net/sinat_29217765/article/details/100850516
    参考:https://blog.csdn.net/scwang18/article/details/100075236
    参考:https://blog.csdn.net/weixin_40668374/article/details/109187846
    参考:http://www.voidcn.com/article/p-hueqmayl-bdx.html

    相关文章

      网友评论

          本文标题:Kubernetes安装

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