k8s dashboard 配置如下

在centos 7.7.1908 配置kubernets 集群模式,并开启dash-board 图形界面时遇到各种问题,将目前踩过的坑列举如下,望各位借鉴。

master node  172.16.18.104

 node1  172.16.18.105

node2  172.16.18.106

私有镜像仓库地址: 172.16.18.111
k8s 集群配置参见
https://www.jianshu.com/p/65ecef9016ae
https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html
1. docker 私有仓库搭建:
    1) yum install docker
    2) systemctl start docker ,systemctl enable docer
    3) 下拉镜像:docker pull registry
    4) docker search pod-infrastructure
    INDEX       NAME                                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    docker.io   docker.io/neurons/pod-infrastructure          k8s pod 基础容器镜像                                  2                    
    docker.io   docker.io/tianyebj/pod-infrastructure         registry.access.redhat.com/rhel7/pod-infra...   2                    
    docker.io   docker.io/w564791/pod-infrastructure          latest                                          1                    
    docker.io   docker.io/xiaotech/pod-infrastructure         registry.access.redhat.com/rhel7/pod-infra...   1                    [OK]
    。。。。。。
    找到ok的
    然后 
        docker pull docker.io/tianyebj/pod-infrastructure 
    5) 创建docker仓库目录 mkdir -p /data/registry
    6) docker run -itd -p 5000:5000 -v /data/registry/:/var/lib/registry docker.io/registry
    7) 对下载的镜像进行打包
    docker tag docker.io/tianyebj/pod-infrastructure  172.16.18.111:5000/pod-infrastructure  将新下载的镜像进行打包,其中172.16.18.111:5000为本地地址及刚才启动docker服务端口
    删除老镜像 docker rmi docker.io/tianyebj/pod-infrastructure
    8) 修改 /etc/sysconfig/docker 中OPTIONS 内容如下 ,添加-signature-verification=false --insecure-registry 172.16.18.111:5000:
    内容如下:
    
    # /etc/sysconfig/docker

    # Modify these options if you want to change the way the docker daemon runs
    OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 172.16.18.111:5000'
    if [ -z "${DOCKER_CERT_PATH}" ]; then
            DOCKER_CERT_PATH=/etc/docker
    fi
    重新启动docker 
    systemctl restart docker
    运行: docker run -itd -p 5000:5000 -v /data/registry/:/var/lib/registry docker.io/registry
    9) setenforce 0 
        或者 修改 /etc/sysconfig/selinux
            SELINUX=disabled  # 重启后生效
    10)docker push  172.16.18.111:5000/pod-infrastructure
    11)本地仓库建好了
2) 利用本地仓库搭建 dash-board
    1) 下载 kubernets-dashboard.yaml 
        wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.5.1/src/deploy/kubernetes-dashboard.yaml
      修改部分内容:
        (1) spec:
              containers:
              - name: kubernetes-dashboard
                image: 172.16.18.111:5000/k8s-dashboard:v1.5.1 # 修改为本地仓库地址即可
        (2)修改apiserver地址:如下
         args:
                  # Uncomment the following line to manually specify Kubernetes API server Host
                  # If not specified, Dashboard will attempt to auto discover the API server and connect
                  # to it. Uncomment only if the default does not work.
                 - --apiserver-host=http://172.16.18.104:8080
    2) 在master节点及node 节点上修改docker配置 /etc/sysconfig/docker
        # /etc/sysconfig/docker

        # Modify these options if you want to change the way the docker daemon runs
        OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
        if [ -z "${DOCKER_CERT_PATH}" ]; then
            DOCKER_CERT_PATH=/etc/docker
        fi
        OPTIONS='--insecure-registry 172.16.18.111:5000'
        ADD_REGISTRY='--add-registry 172.16.18.111:5000'
    3) 修改完需要重启服务
    master节点:
        systemctl restart etcd
        systemctl restart flanneld
        systemctl restart docker kube-apiserver kube-controller-manager kube-scheduler
    node 节点:
        systemctl restart flanneld
        systemctl restart kubelet kube-proxy
    6) 创建dash-board 服务:
        kubectl create -f kubernetes-dashboard.yaml 
     同样删除服务:
        kubectl create -f kubernetes-dashboard.yaml  

 
问题:
    1. k8s dashboard 报错 Error: 'dial tcp 172.168.56.2:9090: getsockopt: connection refused'
    解决:
    在服务器节点上运行: 
    iptables -P FORWARD ACCEPT  即可 重启后失效。或者echo "net.ipv4.ip_forward = 1" >>/usr/lib/sysctl.d/50-default.conf
    然后再master 节点上访问  curl -i  http://172.17.26.2:9090 可以访问
    即可。
    参见:https://blog.csdn.net/qa1986nibuhao/article/details/80814870
    2.  容器无法启动原因:
        1)  无法下拉容器registry.access.redhat.com/rhel7/pod-infrastructure:latest 该问题容易,通过搭建私有仓库或者换掉镜像源即可解决
       解决:
        1) 运行命令:kubectl get pods -n kube-system | grep -v Running
                kubectl logs kubernetes-dashboard-593926443-k6rdz  -n kube-system 
        
           其中:kubernetes-dashboard-593926443-k6rdz 为当前启动pod-infrastructure的节点名称。
        如果是dns-cluster 问题,无法在dns 地址上解析域名,需要node和master节点上修改 /etc/kubernetes/kubelet 内容如下:
        ###
        ###
    # kubernetes kubelet (minion) config

    # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
    KUBELET_ADDRESS="--address=0.0.0.0"

    # The port for the info server to serve on
    # KUBELET_PORT="--port=10250"

    # You may leave this blank to use the actual hostname
    KUBELET_HOSTNAME="--hostname-override=k8s-node1"

    # location of the api-server
    KUBELET_API_SERVER="--api-servers=http://k8s-master:8080"

    # pod infrastructure container
    KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=172.16.18.111:5000/pod-infrastructure:latest"

    # Add your own!
    KUBELET_ARGS=" --cluster-dns=172.16.18.104 --cluster-domain=k8s-master" # 
        备注 172.16.18.104 为当前k8s-master节点地址。
            172.16.18.111:5000 为新建私有仓库地址。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值