安装kubeadm

作者: MSNULL | 来源:发表于2019-04-02 16:28 被阅读0次

    前提条件

    • 系统要求

      • Ubuntu 16.04+
      • Debian 9
      • CentOS 7
      • RHEL 7
      • Fedora 25/26 (best-effort)
      • HypriotOS v1.0.1+
      • Container Linux (tested with 1800.6.0)
    • 2GB内存+

    • 2核CPU+

    端口要求

    • Master node(s)
    Protocol Direction Port Range Purpose Used By
    TCP Inbound 6443* Kubernetes API server All
    TCP Inbound 2379-2380 etcd server client API kube-apiserver, etcd
    TCP Inbound 10250 Kubelet API Self, Control plane
    TCP Inbound 10251 kube-scheduler Self
    TCP Inbound 10252 kube-controller-manager Self
    • Worker node(s)
    Protocol Direction Port Range Purpose Used By
    TCP Inbound 10250 Kubelet API Self, Control plane
    TCP Inbound 30000-32767 NodePort Services** All

    安装docker

    • Docker Engine改为Docker CE(社区版)
      • 它包含了CLI客户端、后台进程/服务以及API。用户像以前以同样的方式获取。
    • Docker Data Center改为Docker EE(企业版)
      • 在Docker三个定价层增加了额外的支付产品和支持
      • 这些修改并不影响Docker Compose以及Docker Machine
    • Docker版本现在基于YY.MM
      • 使用基于月份的发行版本,17.03 的第一版就指向17.03.0,如果有bug/安全修复需要发布,那么将会指向17.03.1等等。
    • "Edge"与"Stable"两个版本发行
      • Edge版本每月发布,提供一个月支持。
      • Stable版本每季度发布,提供4个月支持。
    [root@manage01 /]# yum list docker-ce --showduplicates | sort -r
    Repository base is listed more than once in the configuration
    Repository updates is listed more than once in the configuration
    Repository extras is listed more than once in the configuration
    Repository centosplus is listed more than once in the configuration
     * updates: mirrors.163.com
    Loading mirror speeds from cached hostfile
    Loaded plugins: fastestmirror
     * extras: mirrors.cn99.com
     * epel: mirror01.idc.hinet.net
     * elrepo: hkg.mirror.rackspace.com
    docker-ce.x86_64            3:18.09.4-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:18.09.3-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:18.09.2-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:18.09.1-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:18.09.0-3.el7                     docker-ce-stable
    docker-ce.x86_64            18.06.3.ce-3.el7                    docker-ce-stable
    docker-ce.x86_64            18.06.2.ce-3.el7                    docker-ce-stable
    docker-ce.x86_64            18.06.1.ce-3.el7                    docker-ce-stable
    docker-ce.x86_64            18.06.0.ce-3.el7                    docker-ce-stable
    docker-ce.x86_64            18.03.1.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.09.1.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.03.3.ce-1.el7                    docker-ce-stable
    docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
    docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable
     * base: mirrors.aliyun.com
    Available Packages
    

    这里选择了18.06.3.ce这个版本

    [root@manage01 /]# yum install docker-ce-18.06.3.ce
    

    安装 kubeadm, kubelet and kubectl

    • kubeadm: 引导工具
    • kubelet: 在群集中的所有计算机上运行的组件,并执行诸如启动pod和容器之类的操作。
    • kubectl: 命令行与群集通信。

    kubeadm不会为您安装或管理kubelet或kubectl,需要独立安装。但是要确保这些组件之间的版本兼容。

    Kubernetes version and version-skew policy [https://kubernetes.io/docs/setup/version-skew-policy/]

    Kubeadm-specific version skew policy [https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy]

    开始安装

    迫于qiang,这里是阿里源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [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
    
    # Set SELinux in permissive mode (effectively disabling it)
    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
    yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    
    systemctl enable --now kubelet
    

    安装网络策略

    # 创建kube-router目录下载相关文件
    mkdir kube-router && cd kube-router
    wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml
    wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter-all-features.yaml
    
    # 以下两种部署方式任选其一
    
    # 1. 只启用 pod网络通信,网络隔离策略 功能
    kubectl apply -f kubeadm-kuberouter.yaml
    
    # 2. 启用 pod网络通信,网络隔离策略,服务代理 所有功能
    # 删除kube-proxy和其之前配置的服务代理
    kubectl apply -f kubeadm-kuberouter-all-features.yaml
    kubectl -n kube-system delete ds kube-proxy
    
    # 在每个节点上执行
    docker run --privileged --net=host registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.10.2 kube-proxy --cleanup
    
    # 查看
    kubectl get pods --namespace kube-system
    kubectl get svc --namespace kube-system
    

    问题汇总

    • master无法运行pod
    0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
    
    解决:kubectl taint nodes --all node-role.kubernetes.io/master-
    

    相关文章

      网友评论

        本文标题:安装kubeadm

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