安装kubernets集群

准备工作(node/master机器均需操作)

  • 机器配置,4核心8G内存。

    1
    2
    3
    4
    Distributor ID:	Debian
    Description: Debian GNU/Linux 9.2 (stretch)
    Release: 9.2
    Codename: stretch
  • 关闭swap分区

    1
    swapoff -a
  • 关闭防火墙

    1
    2
    systemctl stop firewalld
    systemctl disable firewalld
  • 时间同步

  • 安装docker,如果嫌慢则使用国内加速器,下面使用官方镜像下载。

    1
    2
    3
    4
    5
    sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
    apt-get update
    apt-get install docker-ce -y
  • 确保如下两个参数值为1,默认为1。

    1
    2
    cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
    cat /proc/sys/net/bridge/bridge-nf-call-iptables
  • 启动docker-ce

    1
    systemctl start docker
  • 设置开机启动

    1
    systemctl enable docker.service
  • 配置kubernets国内源

    1
    2
    3
    4
    5
    6
    7
    #kubernetes部件所需的官方镜像在 http://gcr.io(Google Cloud Container Registry)上,国内无法访问,因此使用国内的谷歌镜像。
    cat /etc/apt/sources.list.d/kubernetes.list如下行。
    deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
    #添加gpg-key
    wget -q -O- https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    #更新源
    apt-get update
  • 安装kube工具

    1
    apt-get -y install kubeadm kubelet kubectl
  • 获取镜像列表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    由于官方镜像地址被墙,所以我们需要首先获取所需镜像以及它们的版本。然后从国内镜像站获取。
    kubeadm config images list
    images=(
    kube-apiserver:v1.12.1
    kube-controller-manager:v1.12.1
    kube-scheduler:v1.12.1
    kube-proxy:v1.12.1
    pause:3.1
    etcd:3.2.24
    coredns:1.2.2
    )
    for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    done

安装kubernets

master机器

  • 修改配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #安装k8s集群,kubeadm会读取/etc/systemd/system/kubelet.service.d/10-kubeadm.conf文件的配置信息,更改cgroup的驱动,这里的驱动要要docker一致,因此用docker info| grep Cgroup命令查看docker的驱动类型,如这里查到的结果为 cgroupfs.因此修改kubeadm的配置文件如下
    vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
    #添加如下配置
    Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
    #设置开机器启动
    systemctl enable kubelet.service
    #注意,需要关闭swap分区,或者在如下的配置文件里修改,表示添加而且的启动选项
    vim /etc/default/kubelet
    KUBELET_EXTRA_ARGS="--fail-swap-on=false"
  • 初始化

    1
    2
    #执行初始化看到Successfully才代表成功。
    kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

node机器

  • 加入集群
    1
    kubeadm join ${master_ip}:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

参考资料

-------------本文结束感谢您的阅读-------------