前言:  网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个 操作手册,希望对想搭建k8s环境的盆友有所帮助。

声明:  由于本人对k8s不是很熟悉,大部分也是参考别人的文章而写,再次对同行的分享表示感谢.

1. 集群信息:

    master01 :  39.100.137.XX (172.26.214.XX)

    slave1:       39.98.155.XX (172.26.214.XX)

    slave2:       39.98.154.XX (172.26.214.XX)

 

2. 设置主机名: master, slave均需配置

    #master执行

    >vi /etc/sysconfig/network    

    HOSTNAME=master01

    #slave1执行

    >vi /etc/sysconfig/network

    HOSTNAME=master01

    #slave2执行

    >vi /etc/sysconfig/network

    HOSTNAME=slave02

 

3. 设置主机名与ip的对应关系: master, slave均需配置

    >cat /etc/hosts

    172.26.214.XX  master01

    172.26.214.XX  slave01

    172.26.214.XX  slave02

 

4. 关闭swap:master, slave均需配置

    重启机器后,如果是临时关闭,别忘记再次执行.   

    >swapoff -a     #临时关闭

    >vim /etc/fstab  #永久关闭

      将/dev/mapper/centos-swap swap swap default 0 0 这一行前面加个#号将其注释掉

 

5. 将桥接的IPv4流量传递到iptables : master, slave均需配置   

    >vim /etc/sysctl.conf

    添加:

    net.ipv4.ip_forward = 1

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

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

 

6. 载入sysctl.conf配置文件: master, slave均需执行

    >sysctl -p

 

7. 添加阿里云YUM软件源 : master, slave均需配置   

   >cd /etc/yum.repos.d

   >touch kubernetes.repo

   >vi kubernetes.repo

   添加:

   [kubernetes]

   name=Kubernetes

   baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

   enabled=1

   gpgcheck=1

   repo_gpgcheck=1

   gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg \

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

   

emq云服务器 配置要求 云服务器 ecs搭建环境_K8S

8. 安装kubeadm,kubelet和kubectl :master, slave均需配置

   yum install -y kubelet-1.15.1 kubeadm-1.15.1 kubectl-1.15.1

   

9. 如果已经提前安装docker, 则重启下docker

    我本地在装k8s之前已经按照好docker.

    

emq云服务器 配置要求 云服务器 ecs搭建环境_K8S_02

    注意: 每个节点都需提前安装好docker环境.

 

10. 启动kubelet : master, slave均需执行

     #systemctl enable kubelet: 添加开机自启动

    >systemctl enable kubelet && systemctl start kubelet

 

11. 初始化k8s master : 只在master执行

       kubeadm init

      --image-repository registry.aliyuncs.com/google_containers

      --kubernetes-version v1.15.1

      --pod-network-cidr=10.244.0.0/16    

      初始化参数解释:

      --service-cidr: 指定serverice网络地址, 可以理解为一个负载均衡的虚拟vip

      --apiserver-advertise-address: 指定Master api 组件ip地址,用于与其它节点通信.

      --pod-network-cidr=10.244.0.0/16: k8s的网络插件所需要用到的配置信息,用来给node分配子网段, 这是flannel的配法.

 

12. 配置kubectl认证信息: 只在master执行      

      # 对于非root用户

      mkdir -p $HOME/.kube

      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

      sudo chown $(id -u):$(id -g) $HOME/.kube/config

      # 对于root用户

      >vi /etc/profile

      export KUBECONFIG=/etc/kubernetes/admin.conf

      也可以直接放到~/.bash_profile

      >echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

 

13. 安装Pod网络插件(CNI): 只在master执行

      要让 Kubernetes 集群能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信    

      Kubernetes 支持多种网络方案,这里我使用 flannel

      kube-flannel.yml 地址:

      https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml 

      将其内容保存至本地文件kube-flannel.yml,然后执行:

      >kubectl apply -f ./kube-flannel.yml

 

14. Node节点配置, 将node 加入master :只在node节点执行.    

      kubeadm join <Master节点的IP和端口>

      向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:这个在master init初始化时会有提示,将示例中的ip更换为子节点的IP

      #slave1执行:

      >kubeadm join 172.26.214.XX:6443 --token amqw4o.i3eya5a1z5f6zuq7 \

       --discovery-token-ca-cert-hash \

       sha256:c45e01b12ea2e2954c8659328d972da5aa217e54c44c11c496b548b0df4c3095

      #slave2执行:  和slave1执行命令相同.

      注意:此命令执行后,需要一段时间才能, 在主机用kubectl get nodes命令查到新加入的node.

 

15. 开放端口 

      在阿里云后台开放: 6443 2379 2380 10250~10252, 31620 端口. 具体方法请自行研究如何设置阿里云访问端口.\

 

16. 验证安装结果

      >kubectl get nodes

      

emq云服务器 配置要求 云服务器 ecs搭建环境_emq云服务器 配置要求_03

      >kubectl get pods -n kube-system

      

emq云服务器 配置要求 云服务器 ecs搭建环境_K8S_04

 

17. 安装Dashboard

      自行参考:

      

emq云服务器 配置要求 云服务器 ecs搭建环境_docker_05

 

18. 至此安装完毕,不喜者勿入.