zoukankan      html  css  js  c++  java
  • Kubernetes 1.5安装

      Kubernetes从1.3开始引入kubeadm来试图简化其复杂的安装。但kubeadm至今仍不稳定,而且我个人觉得kubeadm反而麻烦,还不如直接用脚本或者其他自动化工具来安装来的利索。关于kubeadm配置master的ha,也有相应的替代方案,比如使用keepalived或者corosync等高可用集群软件。所以在这篇文档中,我还是会使用传统的方式来安装kubernetes集群

      Kubernetes依赖于docker和etcd,docker的网络,在这里直接使用flannel。在这篇文档里,不会对master的高可用做过多的阐述,我们先简单的建立一个基本可用最小化集群。我这里使用的三台CentOS 7.2的服务器,各服务器角色介绍如下:

    10.5.10.116 server-116    master节点、node节点、etcd节点
    10.5.10.117 server-117    node节点、etcd节点
    10.5.10.131 server-131    node节点、etcd节点

    需要说明的是,这里需要大家自己设定好基本环境,比如关闭selinux,配置时间同步,清空现有的iptables策略,以及配置好epel源等。

    1、安装并启动docker

    docker的安装比较简单,直接使用yum安装即可:

    yum install -y docker
    systemctl start docker
    systemct enable docker

    2、安装etcd

    在所有节点上执行如下安装操作:

    yum install -y etcd

    修改/etc/etcd/etcd.conf配置文件如下:

    ETCD_NAME=server-116    #etcd的名称,可以设置为各节点的主机名
    ETCD_DATA_DIR="/data/etcd"
    ETCD_LISTEN_PEER_URLS="http://10.5.10.116:2380"
    ETCD_LISTEN_CLIENT_URLS="http://10.5.10.116:2379,http://127.0.0.1:2379"
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.5.10.116:2380"
    ETCD_INITIAL_CLUSTER="server-116=http://10.5.10.116:2380,server-117=http://10.5.10.117:2380,server-131=http://10.5.10.131:2380"
    ETCD_INITIAL_CLUSTER_STATE="new"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.5.10.116:2379"

    创建etcd的数据存储目录:

    mkdir -p /data/etcd

    修改etcd的启动文件/usr/lib/systemd/system/etcd.service,因为默认通过yum安装的etcd的启动项不适用于etcd集群,修改部分内容如下:

    ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name="${ETCD_NAME}" 
                  --data-dir="${ETCD_DATA_DIR}"
                  --listen-client-urls="${ETCD_LISTEN_CLIENT_URLS}"
                  --initial-advertise-peer-urls="${ETCD_INITIAL_ADVERTISE_PEER_URLS}"
                  --listen-peer-urls="${ETCD_LISTEN_PEER_URLS}"
                  --initial-cluster="${ETCD_INITIAL_CLUSTER}"
                  --advertise-client-urls="${ETCD_ADVERTISE_CLIENT_URLS}"
                  --initial-cluster-token="${ETCD_INITIAL_CLUSTER_TOKEN}"
                  --initial-cluster-state="${ETCD_INITIAL_CLUSTER_STATE}"
    "

    启动etcd:

    systemctl start etcd
    systemct enable etcd

    查看etcd集群状态:

    48a6ea53479805ea: name=etcd1 peerURLs=http://10.5.10.116:2380 clientURLs=http://10.5.10.116:2379 isLeader=true
    7760fc31c2c1eeb1: name=etcd2 peerURLs=http://10.5.10.117:2380 clientURLs=http://10.5.10.117:2379 isLeader=false
    f12c14665e56ea5e: name=etcd3 peerURLs=http://10.5.10.131:2380 clientURLs=http://10.5.10.131:2379 isLeader=false

    3、配置flannel

    先在etcd中注册flannel子网:

    etcdctl set /coreos.com/network/config '{"network": "172.16.0.0/16"}'

    在所有节点安装flannel:

    yum install -y flannel

    修改flannel配置文件/etc/sysconfig/flanneld如下:

    FLANNEL_ETCD="http://10.5.10.116:2379,http://10.5.117:2379,http://10.5.131:2379"
    FLANNEL_ETCD_KEY="/coreos.com/network"

    启动flannel:

    systemctl start flanneld
    systemctl enable flanneld

    需要说明的是,如果要让docker使用flannel的网络,docker必须要后于flannel启动,所以需要重新启动docker:

    systemctl restart docker

    4、安装kubernetes服务端

    我这里使用的是网上别人提供的私有的kubernetes的yum源,如下:

    vim /etc/yum.repos.d/kube.repo

    [mritdrepo]
    name=Mritd Repository
    baseurl=https://yumrepo.b0.upaiyun.com/centos/7/x86_64
    enabled=1
    gpgcheck=0
    #gpgkey=https://mritd.b0.upaiyun.com/keys/rpm.public.key

    先通过yumdownloader将所有kubernetes相关的包下载下来,然后再通过本地yum实现安装:

    yumdownloader kubernetes-master kubernetes-client kubernetes-node
    yum localinstall -y kubernetes-master kubernetes-client

    修改kubernetes master上的配置文件如下:

    vim /etc/kubernetes/config
    
    KUBE_LOGTOSTDERR="--logtostderr=false --log-dir=/var/log/kubernetes"
    KUBE_LOG_LEVEL="--v=2"
    KUBE_ALLOW_PRIV="--allow-privileged=false"
    KUBE_MASTER="--master=http://10.5.10.116:8080"
    
    vim /etc/kubernetes/apiserver
    
    KUBE_API_ADDRESS="--address=0.0.0.0"
    KUBE_API_PORT="--port=8080 --secure-port=443"
    KUBE_MASTER="--master=http://10.5.10.116:8080"
    KUBELET_PORT="--kubelet-port=10250"
    KUBE_ETCD_SERVERS="--etcd-servers=http://10.5.10.116:2379,http://10.5.10.117:2379,http://10.5.10.131:2379"
    KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
    KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

    启动kubernetes master:

    systemctl start kube-apiserver kube-controller-manager kube-scheduler
    systemctl enable kube-apiserver kube-controller-manager kube-scheduler

    5、安装kubernetes node端

    yum install -y kubernetes-node

    修改node的配置文件:

    vim /etc/kubernetes/config
    
    KUBE_LOGTOSTDERR="--logtostderr=false --log-dir=/var/log/kubernetes"
    KUBE_LOG_LEVEL="--v=2"
    KUBE_ALLOW_PRIV="--allow-privileged=false"
    KUBE_MASTER="--master=http://10.5.10.116:8080"
    
    vim /etc/kubernetes/kubelet
    
    KUBELET_ADDRESS="--address=0.0.0.0"
    KUBELET_HOSTNAME="--hostname-override=server-116"
    KUBELET_API_SERVER="--api-servers=http://10.5.10.116:8080"
    KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=myhub.fdccloud.com/library/pod-infrastructure:latest"

    启动node端:

    systemctl start kubelet kube-proxy
    systemctl enable kubelet kube-proxy

    最后通过在kubernetes master上通过kubectl查看各节点是否正常:

    [root@server-116 ~]# kubectl get nodes
    NAME         STATUS    AGE
    server-116   Ready     1d
    server-117   Ready     1d
    server-131   Ready     1d

    至此,完成kubernetes 1.5的基本安装  

  • 相关阅读:
    C# 图片与Base64的相互转化
    LeetCode 303. Range Sum Query – Immutable
    LeetCode 300. Longest Increasing Subsequence
    LeetCode 292. Nim Game
    LeetCode 283. Move Zeroes
    LeetCode 279. Perfect Squares
    LeetCode 268. Missing Number
    LeetCode 264. Ugly Number II
    LeetCode 258. Add Digits
    LeetCode 257. Binary Tree Paths
  • 原文地址:https://www.cnblogs.com/breezey/p/6545307.html
Copyright © 2011-2022 走看看