zoukankan      html  css  js  c++  java
  • 在linux通过kubeadm搭建kubernetes群集

    kubeadm是一个命令行的工具,它简化了创建和管理kubernetes cluster的步骤。kubeadm利用Docker的功能进行快速的部署,支行kubernetes master和etcd服务器作为系统服务是以容器的方式呈现的。当触发kuberadm命令时,容器服务将会直接联系在kubernetes node上的Kubelet.kubadm也会检查每个组件是否健康。通过kubeadm设置步骤,你可以避免一连串的安装和配置命令。

    一. 搭建群集之前以下条件需要满足:

    1. 每个节点都有唯一的MAC地址和产品UUID:一些插件使用MAC 地址和产品UUID作为唯一的主机标识(比如,kube-dns),假如它们在群集中重复的话,kubeadm可能不会工作

    //check MAC address of your NIC

    $ ifconfig –a

    //check the product UUID on your host

    $ sudo cat /sys/class/dmi/id/product_uuid


    2. 每个接点都有不同的主机名字:假如主机名称重复的话,kubernetes系统可能从多个主机收集日志或者状态,会被认为是一个。


    3. Docker的安装


    4. 有效的网络端口,要避免端口重复等情况。

    Node role Ports System service
    Master 6433 Kubernetes API server
    10248/10250/10255 kubelet local healthz endpoint/Kubelet API/Heapster (read-only)
    10251 kube-scheduleer
    10252 kube-controller-manager
    10249/10256 kube-proxy
    2379/2380 etcd client/etcd server communication
    Node 10250/10255 Kubelet API/Heapster(read-only)
    30000-32767 Port range reserved for exposing container service to outside world


    可以通过以下命令获取服务器目前侦听的端口:

    // list every listening port
    $ sudo netstat -tulpn | grep LISTEN

    5. 网络工具包安装。 kubeadm要使用ethtool和etables两个软件,可以通过apt-get 或者yum去下载安装。


    二. 搭建群集

    1. 包的安装

    (1)ubuntu

    1)可以连通google时使用方法

    安装执行以下命令

    xiodi@c720132:~$ sudo apt-get update && sudo apt-get install -y apt-transport-https
    Hit:1 https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial InRelease
    Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
    Hit:3 http://us.archive.ubuntu.com/ubuntu xenial InRelease                        
    Get:4 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]       
    Get:5 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
    Get:6 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [796 kB]
    Get:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [727 kB]
    Fetched 1,846 kB in 3s (519 kB/s)                       
    Reading package lists... Done
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    apt-transport-https is already the newest version (1.2.26).
    0 upgraded, 0 newly installed, 0 to remove and 77 not upgraded.


    官网配置命令:

    $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    OK


    $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    OK


    $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    OK


    $ sudo bash -c 'echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'


    2)不能连通google时使用方法:

    注意:以国内使用以上的镜像源时会报错,因为国内无法连通google。在国内使用以下方法进行替代。

    1)从该地址下载gpg公钥

    https://raw.githubusercontent.com/EagleChen/kubernetes_init/master/kube_apt_key.gpg


    2)执行以下命令

    $ cat kube_apt_key.gpg | sudo apt-key add -


    3) 添加ustc镜像源

    $ echo "deb [arch=amd64] https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-$(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list


    如果是ubuntu16.04以上版本,建议执行如下:

    echo "deb [arch=amd64] https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list


    3)安装软件包

    //on kubenetes master

    $ sudo apt-get update

    $ sudo apt-get install –y kubelet kubeadm kubectl

    //on kubenetes slave

    $sudo apt-get update

    $sudo apt-get install kubelet kubelet



    Centos上面的安装:

    1)使用google镜像库安装方法

    $ sudo vim /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/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

    2)在国内使用阿里镜像方法:

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo

    [kubernetes]

    name=Kubernetes

    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

    enabled=1

    gpgcheck=0

    repo_gpgcheck=0

    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

    http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

    EOF


    3)安装包

    // on kubernetes master

    $ sudo yum install –y kubelet kubeadm kubectl

    // on kubernetes node

    $ sudo yum install –y kubelet


    2. 其它相关设置

    1) 查看selinux状态

    // check the state of SELinux, if it has already been disabled, bypass below commands
    $ sestatus


    2)如果selinux状态是enforcing的话,那么使用以下命令关闭。

    // disable SELinux through command
    $  sudo setenforce 0
    // or modify the configuration file
    $ sudo sed –I 's/ SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux


    3) 重新启动系统

    $ sudo reboot


    4) 启动服务

    $ sudo systemctl enable kubelet && sudo systemctl start kubelet


    5) kubeadm初始化

    $ kubeadm init

  • 相关阅读:
    Zabbix安装部署
    设计模式目录导航
    [内排序]八大经典排序合集
    SpringBoot集成基于tobato的fastdfs-client实现文件上传下载和删除
    Docker部署FastDFS(附示例代码)
    Docker部署Portainer搭建轻量级可视化管理UI
    Maven基础知识详解
    SpringBoot整合Swagger2详细教程
    screw一键生成数据库文档
    SpringBoot + Mybatis-Plus 实现多数据源简单示例
  • 原文地址:https://www.cnblogs.com/zangxueyuan/p/9214118.html
Copyright © 2011-2022 走看看