Ubuntu搭建三节点k8s集群

作者: Java程序员YY | 来源:发表于2019-08-12 09:49 被阅读2次

    1.安装docker

    (1)首先更新apt包资源索引

    apt-get update

    (2)安装软件包

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

    (3)添加Docker官方的GPG

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    (4)添加Docker源

    sudo add-apt-repository \

    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

    $(lsb_release -cs) \

    stable"

    (5)因网站服务器在境外,故须使用代理或换源,下面首先演示如何添加代理。

    编辑代理文件

    vim /etc/apt/apt.conf

    做如下修改

    Acquire::http::proxy "http://username:password@server_ip:port/";

    Acquire::https::proxy "https://username:password@server_ip:port/";

    Acquire::ftp::proxy "ftp://username:password@server_ip:port/";

    Acquire::socks::proxy "socks://username:password@server_ip:port/";

    其中username和password是代理账号和密码,server_ip是代理服务器地址,port是代理服务器端口。根据自己情况填写。

    如果没有条件使用代理,可以进行换源。

    备份原有的软件源配置文件sources.list:

    cp /etc/apt/sources.list /etc/apt/sources.list.bk

    修改sources.list文件

    sudo vim /ect/apt/sources.list

    换成阿里的镜像源(也可自行寻找其他国内源)

    deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

    deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

    deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

    deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

    deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

    deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

    更新软件源

    sudo apt-get update

    (6)安装docker

    sudo apt-get update

    sudo apt-get install docker-ce=18.06.0~ce~3-0~ubuntu

    2.搭建k8s集群

    (1)添加GPG

    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

    若该命令不成功或者执行时间太长则进入其中的链接,下载apt-key.gpg, 然后执行如下命令:

    apt-key add apt-key.gpg

    (2)添加源

    cat </etc/apt/sources.list.d/kubernetes.list

    deb http://apt.kubernetes.io/ kubernetes-xenial main

    EOF

    (3)下载kubelet kubeadm kubectl组件

    apt-get update

    apt-get install -y kubelet kubeadm kubectl

    (4)使用虚拟机再完整克隆两个Ubuntu系统,共计3个节点。

    (5)配置IP

    编辑/etc/network/interfaces

    sudo vim /etc/network/interfaces

    将文件改为如下内容(IP地址等内容自行编辑)

    # interfaces(5) file used by ifup(8) and ifdown(8)

    auto lo

    iface lo inet loopback

    auto ens33

    iface ens33 inet static

    address 192.168.222.22

    netmask 255.255.255.0

    gateway 192.168.222.222

    nameserver 8.8.8.8

    ens33为连接名,可以通过ifconfig命令查看。

    (6)三个节点选择一个为master,其他分别为node1和node2。

    在master上执行初始化命令

    kubeadm init --kubernetes-version=v1.15.0 --pod-network-cidr=10.244.0.0/16

    如提示镜像无法下载,则需要手动下载镜像。

    通过下列命令拉取相关镜像

    docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0

    docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0

    docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0

    docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.15.0

    docker pull mirrorgooglecontainers/pause:3.1

    docker pull mirrorgooglecontainers/etcd-amd64:3.2.18

    docker pull coredns/coredns:1.3.0

    通过docker tag命令来修改镜像的标签

    docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.15.0 k8s.gcr.io/kube-proxy-amd64:v1.15.0

    docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.15.0 k8s.gcr.io/kube-scheduler-amd64:v1.15.0

    docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.15.0 k8s.gcr.io/kube-apiserver-amd64:v1.15.0

    docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.15.0 k8s.gcr.io/kube-controller-manager-amd64:v1.15.0

    docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18

    docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1

    docker tag docker.io/coredns/coredns:1.3.0 k8s.gcr.io/coredns:1.3.0

    具体版本及标签信息根据之前的报错提示修改。

    (7)根据初始化成功信息提示的命令在master上执行部分操作。

    注意,此时应切换到普通用户。

    (8)添加 k8s-node1 和 k8s-node2

    在 k8s-node1 和 k8s-node2 上分别执行如下命令,将其注册到 Cluster 中

    kubeadm join --token d38a01.13sd654sdf546d80 192.168.56.105:6443

    这里的 --token 来自前面 kubeadm init 输出初始化成功后的提示,如果当时没有记录下来可以通过 kubeadm token list 查看。

    (9)查看节点的状态

    kubectl get nodes

    无论这里node1,node2是Ready,还是NotReady,都是节点加入成功了。

    (10)节点ready

    节点的NotReady,是因为节点需要启动若干组件,这些组件是在 Pod 中运行,需要首先从 google 下载镜像,我们可以通过命令查看 Pod 的状态

    kubectl get pod --all-namespaces

    Pending、ContainerCreating、ImagePullBackOff 都表明 Pod 没有就绪,Running 才是就绪状态。

    查看 Pod 具体情况

    kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system

    根据所提示的错误具体解决。比如在下载 image 时失败,可以自己手动执行 docker pull 去下载这个镜像。

    问题解决后,所有 Pod 会处于 Running 状态。

    此时,所有的节点都已经 Ready,Kubernetes Cluster 创建成功。

    最新免费java,架构,大数据AI编程资料获取添加

    薇信:18410263200

    通过验证填写“111”(备注必填)

    相关文章

      网友评论

        本文标题:Ubuntu搭建三节点k8s集群

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