ubuntu 18.04下使用kubeadm安装部署k8s

ubuntu 18.04下使用kubeadm安装部署k8s

 

测试环境:ubuntu18.04

部署目标:部署一个k8s master节点+一个k8s slave节点

名称内网IP公网IP
k8s-master172.24.151.21347.113.227.49
k8s-slave172.24.151.21447.113.185.4

 

安装步骤

  1. 准备环境

    关闭swap

    永久关闭swap,编辑/etc/fstab,删除对应行。

     

  2. 安装docker

     

    添加自启动

     

  3. 安装kubeadm,kubelet,kubectl

  4. 初始化master节点(在master机器执行)

    如果init失败,可以先kubeadm reset,然后删除所有image,再执行init。

    给当前用户kubectl权限:

    此时使用kubectl get node命令查看节点状态,发现还处于NotReady状态。这是因为没安装网络插件。

  5. 安装pod网络插件(在master机器执行)

    如果安装慢,可以考虑将kube-flannel.yml下载到本地,替换里面的镜像地址quay.io为国内源quay.mirrors.ustc.edu.cn。然后再执行kubectl apply -f kube-flannel.yml。

    通过命令kubectl get pods -A查看当前运行的系统pods。

    此时再通过kubectl get node命令查看节点状态,发现还处于ready状态。

  6. 加入node节点(在slave机器执行)

  7. 测试集群

    查看服务状态,得到k8s给nginx分配的端口

    通过任一节点ip,加上上面得到的端口,即可访问到nginx的主页。

  8. 部署dashboard

    下载yaml文件

    修改镜像地址,使之能够国内网络访问

    修改service,指定类型

    执行yaml文件

    通过https://nodeip:nodeport即可访问到界面。

  9. 生成dashboard token

     

问题解决

  1. 如何删除pod

  2. init失败后,如何重新init

    使用docker images查看是否有id相同的image,如果存在,则也需要把这些image删除。

  3. dashboard因为证书问题打不开的问题

    创建自签名证书

    申请签名请求

    签发证书

    删除旧kubernetes-dashboard

    修改kubernetes-dashboard.yaml 文件,注释以下行

    创建 secret kubernetes-dashboard-certs

     

    重新部署dashboard