zoukankan      html  css  js  c++  java
  • kubernetes 环境搭建(ubuntu16.04)

    通过kubeadm安装kubernetes的教程:
    1: 首先在每台机器上安装: docker(1.12), kubeadm(1.6), kubectl, kubelet, kubernetes-cni
    apt-get update && apt-get install -y apt-transport-https
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list   
    deb http://apt.kubernetes.io/ kubernetes-xenial main #将kubernetes的源加入到当前的source list中
    EOF

    apt-get update
    # Install docker if you don't have it already.
    apt-get install -y docker-engine
    apt-get install -y kubelet kubeadm kubectl kubernetes-cni
    ~~~~~~~~~~~~~~~~~~~~~~~~
    其中docker install 安装注意事项:
    https://docs.docker.com/engine/installation/linux/ubuntu/#install-using-the-repository
    由于通过k8s管理containers,只需要有docker-engine部分就可以了,其它的并不需要,因此:
    有两个命令可以查看当前可以安装的docker-ce版本和docker-engine版本:
    apt-cache policy docker-engine
    apt-cache madison docker-ce
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    2: 然后在master节点上:
    kubeadm init
    第一次执行等待时间比较长,卡在(Created API client, waiting for the control plane to become ready)
    解决办法:kubeadm reset -> kubeadm init

    当出现:
    renjingui@renjg-HP-Compaq-Pro-6380-MT:~$ sudo kubeadm init
    [kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
    [init] Using Kubernetes version: v1.6.2
    [init] Using Authorization mode: RBAC
    [preflight] Running pre-flight checks
    [preflight] Starting the kubelet service
    [certificates] Generated CA certificate and key.
    [certificates] Generated API server certificate and key.
    [certificates] API Server serving cert is signed for DNS names [renjg-HP-Compaq-Pro-6380-MT kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 109.123.123.6]
    [certificates] Generated API server kubelet client certificate and key.
    [certificates] Generated service account token signing key and public key.
    [certificates] Generated front-proxy CA certificate and key.
    [certificates] Generated front-proxy client certificate and key.
    [certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
    [kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
    [apiclient] Created API client, waiting for the control plane to become ready
    [apiclient] All control plane components are healthy after 16.520114 seconds
    [apiclient] Waiting for at least one node to register
    [apiclient] First node has registered after 4.010585 seconds
    [token] Using token: d9961d.36bce67db0c5bd3b
    [apiconfig] Created RBAC rules
    [addons] Created essential addon: kube-proxy
    [addons] Created essential addon: kube-dns

    Your Kubernetes master has initialized successfully!

    To start using your cluster, you need to run (as a regular user):

      sudo cp /etc/kubernetes/admin.conf $HOME/
      sudo chown $(id -u):$(id -g) $HOME/admin.conf
      export KUBECONFIG=$HOME/admin.conf

    You should now deploy a pod network to the cluster.
    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
      http://kubernetes.io/docs/admin/addons/

    You can now join any number of machines by running the following on each node
    as root:

      kubeadm join --token d9961d.36bce67db0c5bd3b 109.123.123.6:6443
    就说明init成功了。

    通过: kubectl taint nodes --all node-role.kubernetes.io/master- 可以将一个master节点映射为一个node节点

    通过 kubectl get nodes 可以查看当前节点情况。

    3: 配置网络环境。
    由于机器的硬件环境不同,所以要采用通用的网络组件,Flannel 和 Weave Net,前面一种没有成功,原因:dns docker container启动不了
    后面一种配置方法:
    kubectl apply -f https://git.io/weave-kube-1.6

    可以查看所有的namespace的信息:
    renjingui@renjg-HP-Compaq-Pro-6380-MT:~$ kubectl get pods --all-namespaces
    NAMESPACE     NAME                                                  READY     STATUS    RESTARTS   AGE
    kube-system   etcd-renjg-hp-compaq-pro-6380-mt                      1/1       Running   0          6m
    kube-system   kube-apiserver-renjg-hp-compaq-pro-6380-mt            1/1       Running   0          6m
    kube-system   kube-controller-manager-renjg-hp-compaq-pro-6380-mt   1/1       Running   0          6m
    kube-system   kube-dns-3913472980-1j8dx                             3/3       Running   0          7m
    kube-system   kube-proxy-4j745                                      1/1       Running   0          7m
    kube-system   kube-scheduler-renjg-hp-compaq-pro-6380-mt            1/1       Running   0          6m
    kube-system   weave-net-r4b8d                                       2/2       Running   0          5m
    renjingui@renjg-HP-Compaq-Pro-6380-MT:~$


    4:部署应用/调试信息
    kubectl describe -n kube-system po kube-flannel-ds-rr7xv
                        (NAMESPACE)            (NAME)

    5:删除一个节点:
    Master:
        kubectl drain maoxj-optiplex-7010 --delete-local-data --force --ignore-daemonsets
        kubectl delete node <node name>
    node:
        kubeadm reset

    6:加入Cluster的方式为:
    在node节点上执行:
        kubeadm join --token a93f59.e500af089136cc83 109.123.123.6:6443
        
    7:添加dashboard:
        在master节点上执行
        参看链接:
        https://github.com/kubernetes/dashboard#kubernetes-dashboard
        apache 转发代理配置:
        <VirtualHost *:8081>
            ProxyRequests On
            ProxyPass / http://127.0.0.1:8001/
        </VirtualHost>

    只知道不行动是纸上谈兵,只行动不思考更像是无头的苍蝇,要知行合一。
  • 相关阅读:
    Charles的使用教程
    Sublime Text 3 无法使用package control安装插件解决办法
    sublime常用快捷键整理(未完待续)
    常用 Git 命令清单
    js判断的执行顺序
    使用CSS3 Media Queries实现网页自适应(转)
    移动前端开发之viewport的深入理解(转)
    javascript之函数节流
    String常用方法总结
    腾讯面试题1
  • 原文地址:https://www.cnblogs.com/Spider-spiders/p/6841088.html
Copyright © 2011-2022 走看看