zoukankan      html  css  js  c++  java
  • 利用kubeadm部署kubernetes 1.7 with flannel

    一、Installation

    1、安装环境为CentOS 7

    2、安装Docker

    • yum install -y docker
    • systemctl enable docker
    • systemctl start docker

    3、安装CNI

    • cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
             https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      EOF
    • setenforce 0
    • yum install -y kubernetes-cni

    4、安装kubernetes其他组件

    • yum install -y kubelet kubeadm kubectl

    5、创建master node

    • kubeadm init --pod-network-cidr 10.244.0.0/16
    • mkdir -p $HOME/.kube
    • sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    • sudo chown $(id -u):$(id -g) $HOME/.kube/config

    6、创建minion node

    • 在master节点上调用`TOKEN=$(kubeadm token list | grep authentication,signing | awk '{print $1}')`
    • 在minion节点上调用`kubeadm join --token $TOKEN ${MASTER_IP:PORT}`加入集群
    • 调用`kubectl get nodes`可以观察节点是否加入

    7、安装flannel,仅在master节点上操作

    • kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
    • kubectl apply -f  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    需要注意的是,通过上述步骤,会自动将flannel安装到整个集群中,包括master节点和所有minion节点

    8、检测安装是否成功

      1、在master节点调用`kubectl get pods --all-namespaces`,特别注意kube-dns-*和kube-flannel-*是否running,输出结果如下:  

        

      2、在master节点调用`ip route`,特别注意是否存在路由范围为"10.244.0.0/24"的"cni0"设备和路由范围为"10.244.0.0/16"的"flannel.1"设备,输出结果如下:

      

      3、调用`kubectl run -i --tty busybox --image=busybox`创建pod,然后用位于不同节点间的pod互ping,成功即可

    二、Troubleshooting

    1、如果通过`kubectl get pods --all-namespaces`命令观察到kube-flannel-*这个pod迟迟不能running

      调用`journalctl -u docker`发现错误为`cp: can't create '/etc/cni/net.d/10-flannel.conf': Permission denied`

      调用`setenforce 0`暂时关闭SELinux即可

    2、最新版的kubernetes中,在添加minion节点时,可能会出现如下问题,导致minion无法加入节点:

      

      解决办法.....暂时没有.......

    3、如果minion节点显示已经加入成功了,但是在master节点上调用`kubectl get nodes`后发现该节点并没有加入

      可以调用`kubectl get csr`查看是否有csr处于pending的状态,有的话,调用`kubectl certificate approve $CSR`将其确认即可

    三、Reference

    1. https://github.com/kubernetes/frakti/blob/master/docs/deploy.md
    2. http://blog.frognew.com/2017/04/kubeadm-install-kubernetes-1.6.html
    3. http://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm/
  • 相关阅读:
    Python教程:从零到大师
    Hive 安装 & Mysql 安装
    Hive基本原理及配置Mysql作为Hive的默认数据库
    分布式存储系统-HDFS
    centos 6.4-linux环境配置,安装hadoop-1.1.2(hadoop伪分布环境配置)
    VirtualBox安装Centos出现E_FAIL (0x80004005)的解决方法
    Hadoop 中HDFS、MapReduce体系结构
    探索性测试及基本用例
    软件测试相关术语(测试策略 && 测试方案 ....)
    高效学习的疑问与思路[软技能]
  • 原文地址:https://www.cnblogs.com/YaoDD/p/7204115.html
Copyright © 2011-2022 走看看