美文网首页kubernetes 从入门到放弃
使用kubeadm快速安装kubernetes

使用kubeadm快速安装kubernetes

作者: 朗月清风hyj | 来源:发表于2019-05-12 21:06 被阅读0次

    kubeadm是Kubernetes官方提供的用于快速安装 Kubernetes
    集群的工具,通过将集群的各个组件进行容器化安装管理,通过kubeadm的方式安装集群比二进制的方式安装要方便不少,但是目录kubeadm还处于beta状态,还不能用于生产环境,Using kubeadm to Create a Cluster文档中已经说明kubeadm将会很快能够用于生产环境了。

    准备三台centos的机器

    为了后续方便,每台机器的hosts文件加上这个。

    192.168.211.131 master
    192.168.211.132 note1
    192.168.211.133 note2
    

    关闭centos自带的防火墙

    systemctl disable firewalld
    
    systemctl stop firewalld
    

    添加yum仓库

    可以去阿里云的仓库(https://opsx.alibaba.com/mirror)下载相应的仓库至/etc/yum.repos.d目录下。
    如:

    [kubernetes]
    name=kubernetes Repo
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    enabled=1
    
    

    如果出现gpgkey检查有问题,我们就自己手动import下。

    wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    
    rpm --import yum-key.gpg
    
    

    安装docker,kubectl,kubeadm,kubelet,

    yum install docker-ce kubelet kubeadm kubectl
    

    启动docker

    在启动docker之前,为了后续安装k8s方便(添加代理),需要修改dokcer服务配置文件。

    vim /usr/lib/systemd/system/docker.service
    

    添加两个环境变量

    Environment="HTTPS_PROXY=http://192.168.137.1:10080" //自己的代理
    Environment="NO_PROXY=127.0.0.0/8,172.20.0.0/16"
    
    
    image

    启动docker

    systemctl daemon-reload//重新加载配置
    systemctl start docker
    systemctl enable docker //开启自启动
    

    注意检查/proc/sys/net/bridge/bridge-nf-call-ip6tables和/proc/sys/net/bridge/bridge-nf-call-iptables,保证值为1,为了保证后面iptables正常的桥接功能</br>

    如果不是1,可以设设置下。

    echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
    echo '1' > /proc/sys/net/bridge/bridge-nf-call-ip6tables
    
    

    设置kubelet(忽略swap),同时设置为开机启动。

    vim /etc/sysconfig/kubelet
    
    systemctl enable kubelet
    
    在这里插入图片描述

    也可以禁用swap

    sudo swapoff -a
    
    sed -i '/ swap / s/^/#/' /etc/fstab
    

    用yum源的方式安装的kubelet生成的配置文件将参数--cgroup-driver改成了systemd,而docker的

    cgroup-driver是cgroupfs,这二者必须一致才行,我们可以通过docker info命令查看


    在这里插入图片描述

    如果不一致,可以修改文件kubelet的配置文件/etc/systemd/system/kubelet.service.d/10-

    kubeadm.conf,将其中的KUBELET_CGROUP_ARGS参数更改成cgroupfs:

    Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
    

    或者修改docker配置文件
    vim /etc/docker/daemon.json

     {
        "exec-opts": ["native.cgroupdriver=systemd"]
    }
    
    [root@note2 hanyajun]# systemctl daemon-reload
    [root@note2 hanyajun]# systemctl restart docker
    

    初始化集群

    在master节点上用kubeadm命令来初始化我们的集群了

    kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
    
    

    命令非常简单,就是kubeadm init,后面的参数是需要安装的集群版本,因为我们这里选择flannel作为 Pod 的网络插件,所以需要指定–pod-network-cidr=10.244.0.0/16,然后是apiserver的通信地址,这里就是我们master节点的IP 地址。执行上面的命令,如果出现 running with swap on is not supported. Please disable swap之类的错误,则我们还需要增加一个参数–ignore-preflight-errors=Swap来忽略swap的错误提示信息:
    在这里插入图片描述

    安装 Pod Network

    For Kubernetes v1.7+ (https://github.com/coreos/flannel)

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    安装完成后使用kubectl get pods命令可以查看到我们集群中的组件运行状态,如果都是Running状态的话,那么恭喜你,你的master节点安装成功了。

    [root@master hanyajun]# kubectl get pods --all-namespaces
    NAMESPACE     NAME                             READY   STATUS    RESTARTS   AGE
    kube-system   coredns-fb8b8dccf-ddpzg          1/1     Running   0          61m
    kube-system   coredns-fb8b8dccf-ptz2g          1/1     Running   0          61m
    kube-system   etcd-master                      1/1     Running   0          60m
    kube-system   kube-apiserver-master            1/1     Running   0          60m
    kube-system   kube-controller-manager-master   1/1     Running   0          60m
    kube-system   kube-flannel-ds-amd64-ts46h      1/1     Running   0          55m
    kube-system   kube-proxy-wjv4g                 1/1     Running   0          61m
    kube-system   kube-scheduler-master            1/1     Running   0          60m
    [root@master hanyajun]#
    

    添加节点

    直接在 Node 节点上执行kubeadm join命令

    kubeadm join 192.168.211.131:6443 --token ferqkx.ituywx5n5cxx9mko --discovery-token-ca-cert-hash sha256:f3af0e15c4f6c27327fd04bdcaff97525030bb55ee80f72c118284efaf074cdc --ignore-preflight-errors=Swap
    

    可以直接在master通过下面这个指令查看节点情况

    
    [root@master hanyajun]# kubectl get nodes
    NAME     STATUS   ROLES    AGE     VERSION
    master   Ready    master   96m     v1.14.1
    note1    Ready    <none>   24m     v1.14.1
    note2    Ready    <none>   4m46s   v1.14.1
    [root@master hanyajun]#
    
    

    到这里就算我们的集群部署成功了,接下来就可以根据我们的需要安装一些附加的插件,比如 Dashboard、Heapster、Ingress-Controller等等。

    相关文章

      网友评论

        本文标题:使用kubeadm快速安装kubernetes

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