zoukankan      html  css  js  c++  java
  • kubernetes 集群搭建

    内容来源:https://study.163.com/course/courseMain.htm?courseId=1209568805

    安装所需资源

      软路由:https://pan.baidu.com/s/1On6h4IReUdzn6kOXImQHJg  提取码:vkcu

      kubernetes资源:https://pan.baidu.com/s/1jbBzp-MpoBnFoPcngFE0uA 提取码:okte

      Harbor安装资源:https://pan.baidu.com/s/1woBnOGII6nEnTOmnLQuFhA 提取码:toh7

    安装教程汪洋老师讲的都比较详细,安装文档上面资源文档中也有,此处就不写了。

    安装虚拟机的时候 CPU 最好设置 大于等于 4核 内存如果不够设置小点应该也是没影响的,我这边设置的是2G 

    遇到的问题

    由于无法 kexue上网(翻墙),在最后一步部署网络的时候会无法下载 flannel-v0.12.0-amd64 docker镜像 会出现以下问题:

    [root@k8s-master01 flannel]# kubectl create -f kube-flannel.yml 
    podsecuritypolicy.policy/psp.flannel.unprivileged created
    clusterrole.rbac.authorization.k8s.io/flannel created
    clusterrolebinding.rbac.authorization.k8s.io/flannel created
    serviceaccount/flannel created
    configmap/kube-flannel-cfg created
    daemonset.apps/kube-flannel-ds-amd64 created
    daemonset.apps/kube-flannel-ds-arm64 created
    daemonset.apps/kube-flannel-ds-arm created
    daemonset.apps/kube-flannel-ds-ppc64le created
    daemonset.apps/kube-flannel-ds-s390x created
    [root@k8s-master01 flannel]# 
    [root@k8s-master01 flannel]# 
    [root@k8s-master01 flannel]# kubectl get pod -n kube-system
    NAME                                   READY   STATUS     RESTARTS   AGE
    coredns-5c98db65d4-2hfsb               0/1     Pending    0          3h42m
    coredns-5c98db65d4-xwpht               0/1     Pending    0          3h42m
    etcd-k8s-master01                      1/1     Running    0          3h42m
    kube-apiserver-k8s-master01            1/1     Running    0          3h42m
    kube-controller-manager-k8s-master01   1/1     Running    0          3h41m
    kube-flannel-ds-amd64-7bcll            0/1     Init:0/1   0          10s
    kube-proxy-dd9pl                       1/1     Running    0          3h42m
    kube-scheduler-k8s-master01            1/1     Running    0          3h41m

    使用命令 kubectl describe pod kube-flannel-ds-amd64-7bcll -n kube-system 查看问题描述:

    [root@k8s-master01 flannel]# kubectl describe pod kube-flannel-ds-amd64-7bcll -n kube-system
    Name:           kube-flannel-ds-amd64-7bcll
    Namespace:      kube-system
    Priority:       0
    Node:           k8s-master01/192.168.66.10
    Start Time:     Fri, 27 Mar 2020 00:31:28 +0800
    Labels:         app=flannel
                    controller-revision-hash=6855c75b9
                    pod-template-generation=1
                    tier=node
    Annotations:    <none>
    Status:         Pending
    IP:             192.168.66.10
    Controlled By:  DaemonSet/kube-flannel-ds-amd64
    Init Containers:
      install-cni:
        Container ID:  
        Image:         quay.io/coreos/flannel:v0.12.0-amd64
        Image ID:      
        Port:          <none>
        Host Port:     <none>
        Command:
          cp
        Args:
          -f
          /etc/kube-flannel/cni-conf.json
          /etc/cni/net.d/10-flannel.conflist
        State:          Waiting
          Reason:       PodInitializing
        Ready:          False
        Restart Count:  0
        Environment:    <none>
        Mounts:
          /etc/cni/net.d from cni (rw)
          /etc/kube-flannel/ from flannel-cfg (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from flannel-token-rztlx (ro)
    Containers:
      kube-flannel:
        Container ID:  
        Image:         quay.io/coreos/flannel:v0.12.0-amd64
        Image ID:      
        Port:          <none>
        Host Port:     <none>
        Command:
          /opt/bin/flanneld
        Args:
          --ip-masq
          --kube-subnet-mgr
        State:          Waiting
          Reason:       PodInitializing
        Ready:          False
        Restart Count:  0
        Limits:
          cpu:     100m
          memory:  50Mi
        Requests:
          cpu:     100m
          memory:  50Mi
        Environment:
          POD_NAME:       kube-flannel-ds-amd64-7bcll (v1:metadata.name)
          POD_NAMESPACE:  kube-system (v1:metadata.namespace)
        Mounts:
          /etc/kube-flannel/ from flannel-cfg (rw)
          /run/flannel from run (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from flannel-token-rztlx (ro)
    Conditions:
      Type              Status
      Initialized       False 
      Ready             False 
      ContainersReady   False 
      PodScheduled      True 
    Volumes:
      run:
        Type:          HostPath (bare host directory volume)
        Path:          /run/flannel
        HostPathType:  
      cni:
        Type:          HostPath (bare host directory volume)
        Path:          /etc/cni/net.d
        HostPathType:  
      flannel-cfg:
        Type:      ConfigMap (a volume populated by a ConfigMap)
        Name:      kube-flannel-cfg
        Optional:  false
      flannel-token-rztlx:
        Type:        Secret (a volume populated by a Secret)
        SecretName:  flannel-token-rztlx
        Optional:    false
    QoS Class:       Guaranteed
    Node-Selectors:  <none>
    Tolerations:     :NoSchedule
                     node.kubernetes.io/disk-pressure:NoSchedule
                     node.kubernetes.io/memory-pressure:NoSchedule
                     node.kubernetes.io/network-unavailable:NoSchedule
                     node.kubernetes.io/not-ready:NoExecute
                     node.kubernetes.io/pid-pressure:NoSchedule
                     node.kubernetes.io/unreachable:NoExecute
                     node.kubernetes.io/unschedulable:NoSchedule
    Events:
      Type    Reason     Age   From                   Message
      ----    ------     ----  ----                   -------
      Normal  Scheduled  51s   default-scheduler      Successfully assigned kube-system/kube-flannel-ds-amd64-7bcll to k8s-master01
      Normal  Pulling    50s   kubelet, k8s-master01  Pulling image "quay.io/coreos/flannel:v0.12.0-amd64"

    解决办法

    由于我无法 kexue上网(翻墙),于是通过公司公网服务先将此镜像拉取下来,然后再导出来,最后再将导出的镜像导入到自己的内网服务中 3台机器都导一下

    #拉取镜像
    docker pull quay.io/coreos/flannel:v0.12.0-amd64
    
    #导出镜像
    docker image save -o flannel-v0.12.0-amd64.tar quay.io/coreos/flannel:v0.12.0-amd64
    
    #将导出的镜像下载,然后上传到自己的内网服务
     ....
    
    #将镜像导入到docker
    docker load -i flannel-v0.12.0-amd64.tar

    如果没有公网服务上面资源包中也提供了次镜像,名为:flannel-v0.12.0-amd64.tar

    以上执行完成之后 删除先前创建的 kube-flannel 然后从新创建就好了

    #查看没有运行成功的 kube-flannel-ds-amd64-7bcll 是否存在
    kubectl get pod -n kube-system
    
    #删除 kube-flannel-ds-amd64-7bcll
    kubectl delete -f kube-flannel.yml
    
    #重新创建 kube-flannel-ds-amd64-7bcll
    kubectl create -f kube-flannel.yml
    
    #再次执行
    kubectl get pod -n kube-system
    
    #查看 node 状态
    kubectl get node

    如果初始化的时候默认加载的内核不是4.4可以查看一下教程:

    https://www.cnblogs.com/Wolf-Dreams/p/10947799.html

  • 相关阅读:
    python之函数名,闭包、迭代器
    python-函数进阶-动态传参,名称空间,作用域的问题
    python之初识函数
    python之文件处理
    重新执笔,已是大三!Jekyll自定义主题开发
    HDU -2674 N!Again(小技巧)
    HDU -2546饭卡(01背包+贪心)
    NYOJ 1091 超大01背包(折半枚举)
    HDU 5144 NPY and shot(三分法)
    printf用法之打印2进制,八进制,十进制,十六进制
  • 原文地址:https://www.cnblogs.com/gyli20170901/p/12576511.html
Copyright © 2011-2022 走看看