美文网首页
[k8s]基于Centos7安装kubernetes1.13.2

[k8s]基于Centos7安装kubernetes1.13.2

作者: 谙儬 | 来源:发表于2019-01-21 11:11 被阅读0次

    本篇文章是基于kubernetes—CentOS7安装kubernetes1.11.2图文完整版这篇文章而写,主要是为了记录安装成功的过程加上自己的一些理解,为了避免以后遗忘。

    设置主机名

    这样就可以将主机名设置成自己想要的名字,方便查看。我把master节点设置为k8s-master,从节点设置为k8s-node1
    分别在两台机器上进行设置,下面用master节点来举例

    hostname k8s-master
    

    编辑对应关系,首先用ifconfig命令来获取ip地址,然后使用命令

    vi /etc/hosts
    

    输入

    192.168.194.135 k8s-master
    

    关闭防火墙

    CentOS Linux7中默认开启了防火墙,在一个安全的内部网络环境中可以关闭防火墙服务

    sudo systemctl stop firewalld.service   #停止firewall
    sudo systemctl disable firewalld.service #禁止firewall开机启动
    sudo firewall-cmd --state             #查看防火墙状态
    

    这时可以看到防火墙的状态是not running

    在主机上禁用SELinux

    让容器可以读取主机文件系统

    sudo setenforce 0
    

    或者也可以用修改系统文件的方式修改

    sudo vi /etc/selinux/config
    #SELINUX修改为disabled
    SELINUX=disabled 
    

    创建/etc/sysctl.d/k8s.conf文件

    sudo vi /etc/sysctl.d/k8s.conf
    

    添加如下内容:

    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    

    使修改生效,执行

    sudo sysctl -p /etc/sysctl.d/k8s.conf
    

    关闭swap

    swapoff -a
    

    配置yum源

    因为用k8s官网给的yum源国内访问不了,所以用的是阿里云的yum仓库镜像

    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
    

    安装kubeadm和相关工具

    yum install -y docker kubelet kubeadm kubectl kubernetes-cni
    

    如果本来就已经安装了Docker,那取消命令中的docker。


    安装成功页面

    安装成功了后,启动Docker服务和kubelet服务,并且设置成开机自动启动

    systemctl enable docker && systemctl start docker
    systemctl enable kubelet && systemctl start kubelet
    
    启动服务

    下载kubernetes相关镜像

    kubeadm默认从gcr.io中下载kubernetes相关镜像,但是我们无法访问gcr.io的网络环境,所以采用了Daocloud来获取镜像加速服务

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    

    该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中 ,然后重启docker来使得docker生效

    systemctl restart docker #重启docker
    

    这时可能会出现重启失败的错误,需要去检查配置文件 /etc/docker/daemon.json,使得文件中的内容为:


    配置文件

    手动下载相关镜像

    接下来去手动下载kubernetes相关镜像,下载地址是https://hub.docker.com/r/warrior

    docker pull mirrorgooglecontainers/kube-apiserver:v1.13.2
    docker pull mirrorgooglecontainers/kube-controller-manager:v1.13.2
    docker pull mirrorgooglecontainers/kube-scheduler:v1.13.2
    docker pull mirrorgooglecontainers/kube-proxy:v1.13.2
    docker pull mirrorgooglecontainers/pause:3.1
    docker pull mirrorgooglecontainers/etcd:3.2.24
    docker pull coredns/coredns:1.2.6
    

    修改镜像名,以供kubeadm使用

    docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.13.2 k8s.gcr.io/kube-proxy:v1.13.2
    docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.13.2 k8s.gcr.io/kube-scheduler:v1.13.2
    docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.13.2 k8s.gcr.io/kube-apiserver:v1.13.2
    docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.13.2 k8s.gcr.io/kube-controller-manager:v1.13.2
    docker tag docker.io/mirrorgooglecontainers/etcd:3.2.24  k8s.gcr.io/etcd:3.2.24
    docker tag docker.io/mirrorgooglecontainers/pause:3.1  k8s.gcr.io/pause:3.1
    docker tag docker.io/coredns/coredns:1.2.6  k8s.gcr.io/coredns:1.2.6
    

    运行kubeadm init安装master

    kubeadm init --kubernetes-version = 1.13.2
    

    运行


    成功界面

    安装Node,加入集群

    安装kubeadm和相关工具

    此部分内容和上文中对应内容一致

    加入集群

    kubeadm join 192.168.194.128:6443 --token 7orz4v.q5landhrmjc844ep --discovery-token-ca-cert-hash sha256:9c7f5c99293d7978a2ce9e0d7900715e0b9241526f69da237b74cad419470864
    
    • 这上面的token及ip地址均为master节点安装成功界面中的提示。
    • 获取ca证书sha256编码hash值,在master节点上输入命令
    openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
    

    输入后可能会提示你swap没有关闭,输入命令来关闭就行,命令如下

    swapoff -a
    

    再次join,发现加入成功


    加入成功

    安装网络插件

    添加节点后,通过kubectl get nodes命令,可能会发现报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?
    输入命令

    export KUBECONFIG=/etc/kubernetes/admin.conf
    

    解决了这个问题,但是Kubernetes提示Master节点为NotReady的状态,所以要安装网络插件
    这里选择的flannel插件

    mkdir -p ~/k8s/
    cd ~/k8s
    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    kubectl apply -f  kube-flannel.yml
    

    这时候使用kubectl get pod –all-namespaces -o wide确保所有的Pod都处于Running状态。
    这里出了一个错误,kube-flannel-ds-amd64节点出现了init错误,使用

    yum install flannel
    

    进行安装flannel,问题得到的解决,与此同时可以看到master节点已经是ready状态了

    手动配置副节点镜像

    当前页面状态

    这时候发现副节点还是notready的状态,查看pod的状态,发现卡在ContainerCreating状态和Init:0/1,这是因为副节点镜像没有获取到的原因,按照上文手动安装镜像的内容重新进行安装。而flannel则是在master节点输入docker image命令查看镜像版本,然后手动下载就可以。

    成功

    准备好镜像之后发现成功:


    安装成功界面

    相关文章

      网友评论

          本文标题:[k8s]基于Centos7安装kubernetes1.13.2

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