docker + k8s +dashboard 第一次安装部署

kubernetes+docker+dashboard 安装部署

推荐文章:https://blog.csdn.net/weixin_34077371/article/details/91688760

一 安装 k8s mater +k8s node

   对docker和kubernetes都不熟悉,搜了很多指导,在kubernetes集群中安装dashboard的时候总是会遇到各种问题,花了两天时间试了很多方法,终于安装成功,主体步骤来自https://blog.csdn.net/chenyufeng1991/article/details/79251498,补全安装过程中遇到的问题及解决方法。
 
        实验环境:
        1.OS:Centos7.5
            每个操作系统设置一个主机IP
        2.使用的软件包
     master:docker/kubernetes-master/etcd/flannel
     nodes:docker/kubernetes-node/flannel
        3.软件包说明
     kubernetes-master:Kubernetes服务端
     kubernetes-node:Kubernetes客户端
     etcd:服务发现的键值存储(可以理解为中间件,flannel服务通过它记录分配给各pod的地址段,每次分配前会在etcd中查询,从而不会重复分配)
     flannel:打通多台服务器上的docker容器之间的网路互通
 
        前提条件:
        1.master和node修改SELINUX配置文件,SELINUX=disabled,重启操作系统
        2.master和node执行systemctl stop firewalld和systemctl disable firewalld关闭防火墙,有安全需求的,可以根据需要启动防火墙,放开相应端口
        3.master和node修改主机名,可以使用hostnamectl命令直接修改,也可以修改/etc/hostname文件,将主机名与IP地址对应关系写入/etc/hosts文件
        4.开启路由转发功能,在master和node的/etc/sysctl.conf中添加net.ipv4.ip_forward = 1   执行sysctl -p执行该文件
 
        安装步骤:
        1.master安装配置
 
        yum install -y kubernetes-master etcd flannel docker
        此处如果有低版本kubectl等工具会报错,使用rpm -e卸载所有依赖,再次执行此命令即可
 
        etcd安装完成后配置
        vi /etc/etcd/etcd.conf
 
        ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"   ###此处localhost修改为0.0.0.0
        ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" ###此处localhost修改为主机IP地址,如果多个etcd构成集群,直接在后面加url
 
        完成以后配置后,启动etcd,加入自启动
        systemctl start etcd
        systemctl enable etcd
 
        配置Kubernetes,进入/etc/kubernetes目录:
        vi apiserver
 
        KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"  ###apiserver服务绑定的地址(个人理解为apiserver监听地址)
        KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.149.134:2379" ###url里面的IP地址修改为etcd配置文件中设置的主机IP地址
        KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/16" ###Kubernetes可以分配的IP范围,Kubernetes启动的每一个pod以及service都会分配一个IP地址,将会从这个范围分配。是Services管理的集群IP地址范围。后面etcd设置存储地址段的目录时,要与该地址段保持一致。
        KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" ###是因为安装kubernetes而修改的配置
 
        vi config
        KUBE_MASTER="--master=http://192.168.149.134:8080" ###此处url中的IP地址修改为master主机IP地址
 
        2.node配置
    yum install -y kubernetes-node flannel docker
 
        配置kubernetes,进入/etc/kubernetes目录:
        vi config
        KUBE_MASTER="--master=http://192.168.149.134:8080" ###此处url中的IP地址修改为master主机IP地址
 
        vi kubelet
        KUBELET_ADDRESS="--address=0.0.0.0" ###kubelet启动后绑定的地址
 
        KUBELET_HOSTNAME="--hostname-override=node" ###此处为master执行get nodes时显示的名称,填可以解析的主机名或者IP地址,不能随意起
 
        KUBELET_API_SERVER="--api-servers=http://192.168.149.134:8080" ###此处IP地址为master的主机IP地址
 
        3.配置flannel,master及node节点上flannel的配置都要一样
      master及node节点,进入/etc/sysconfig目录
 
        vi flanneld
        FLANNEL_ETCD_ENDPOINTS="http://http://192.168.149.134:2379" ###此处IP地址为etcd配置文件中设置的主机IP地址
 
        FLANNEL_ETCD_PREFIX="/kube/network" ###下面etcd执行命令时使用该目录
 
        然后在master节点上执行以下命令:
    etcdctl mkdir /kube/network
    etcdctl mk /kube/network/config '{"Network":"172.17.0.0/16"}'  ###此处网段要与前面apiserver里面配置的参数一致
 
        4.分别在master、nodes上启动docker、etcd、flanneld并加入自启动
    master:
    systemctl start docker etcd flanneld
    systemctl enable docker etcd flanneld
    node:
    systemctl start docker flanneld
    systemctl enable docker flanneld
 
        5.启动服务
        启动master上的k8s服务,先启动apiserver
    systemctl start kube-apiserver kube-controller-manager  kube-scheduler
    systemctl enable kube-apiserver kube-controller-manager  kube-scheduler
 
        启动nodes上的k8s服务
    systemctl start kube-proxy kubelet
    systemctl enable kube-proxy kubelet
 
        6.验证
        访问http://kube-apiserver:port
        http://192.168.149.134:8080/ 查看所有请求url。

      http://192.168.149.134:8080/healthz/ping    # 查看健康状况

二 安装 dashboard 

         在master上查看一些服务是否成功开启
 
         获取k8s客户端
         kubectl get nodes  ###可以获取到node
         获取k8s命名空间  
         kubectl get namespace ###要有kube-system
 
         7.开始安装dashboard(坑比较多的地方)
         master开始创建dashboard ui,在该步骤之前要先有kube-system命名空间
         在master上拉取以下代码:wget http://docs.minunix.com/docker/kubernetes-dashboard.yaml   ###wget下载不下来可以用curl -O 这个url下载下来,将里面的- --apiserver-host=http://192.168.149.134:8080  IP地址替换成自己的master主机IP地址,通过master的apiserver来访问运行在node容器中的dashboard

你可能感兴趣的:(docker,kubernetes,centos)