美文网首页开发辅助技术K8s
Centos7.0+安装配置使用简介Kubernetes (k8

Centos7.0+安装配置使用简介Kubernetes (k8

作者: 桃李报春 | 来源:发表于2019-08-21 14:55 被阅读0次

    前言

    Kubernetes 学习笔记,记录下来!💻🚀

    image

    准备三台CentOS 7.0+的机器,更改Hostname为Master、node-01、node-02:

    节点 IP地址
    Master 10.211.55.7
    node-01 10.211.55.8
    node-02 10.211.55.9

    我这里新创建了三台虚拟机:


    image

    配置所有机器的/etc/hosts文件:

    vi /etc/hosts
    

    添加如下这三行后保存退出。

    10.211.55.7 Master
    10.211.55.8 node-01
    10.211.55.9 node-02
    
    image

    注意:以下命令,非root用户需要sudo权限带sudo 执行相关命令。
    root用户去掉sudo执行。

    关闭防火墙

    1、关闭防火墙:sudo systemctl stop firewalld.service

    2、关闭开机启动:sudo systemctl disable firewalld.service

    查看防火墙状态:firewall-cmd --state

    查看是否开机启动:systemctl is-enabled firewalld.service

    禁用SELINUX

    sudo setenforce 0
    sudo vi /etc/selinux/config
    #SELINUX修改为disabled
    SELINUX=disabled
    

    关闭Swap交换分区

    关闭系统的Swap命令如下:

    swapoff -a
    

    同时还需要修改/etc/fstab文件,注释掉SWAP的自动挂载,防止机子重启后swap启用。
    使用命令:

    vi /etc/fstab
    

    注释swap这一行后保存退出。

    # /dev/mapper/centos-swap swap                    swap    defaults        0 0
    

    确认swap已经关闭,使用命令:

    free -m
    

    swap输出为0则说明已经关闭。

    image

    开始安装

    yum -y install epel-release
    
    image

    然后升级到最新版本:

    yum update
    
    image

    开始安装:(所有主机)

    yum install -y etcd kubernetes-master ntp flannel
    
    image image

    安装了etcd 3.3.11、flannel 0.7.1、kubernetes-master 1.5.2版本。

    继续安装node:

    yum install -y kubernetes-node ntp flannel docker
    
    image image image

    时间校对:(所有主机)

    systemctl start ntpd
    ntpdate ntp1.aliyun.com
    hwclock -w
    
    image

    配置etcd服务器

    • master:
      编辑etcd.conf文件:
    vim /etc/etcd/etcd.conf
    

    修改为以下内容:

    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
    ETCD_NAME="master"
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.7:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.7:2379,http://10.211.55.7:4001"
    ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_INITIAL_CLUSTER_STATE="new"
    

    查看是否修改:

    grep -v '^#' /etc/etcd/etcd.conf
    
    image

    启动etcd服务

    systemctl start etcd
    

    检查etcd集群状态

    etcdctl cluster-health
    
    image

    检查etcd集群成员列表,这里只有一台

    etcdctl  member  list
    
    image
    • node01:
      编辑etcd.conf文件:
    vim /etc/etcd/etcd.conf
    

    修改为以下内容:

    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
    ETCD_NAME="node02"
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.8:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.8:2379,http://10.211.55.8:4001"
    ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_INITIAL_CLUSTER_STATE="new"
    

    启动etcd服务

    systemctl start etcd
    

    检查etcd集群状态

    etcdctl cluster-health
    

    检查etcd集群成员列表

    etcdctl  member  list
    
    • node02:

    编辑etcd.conf文件:

    vim /etc/etcd/etcd.conf
    

    修改为以下内容:

    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
    ETCD_NAME="node02"
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.211.55.9:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.211.55.9:2379,http://10.211.55.9:4001"
    ETCD_INITIAL_CLUSTER="master=http://10.211.55.7:2380,node01=http://10.211.55.8:2380,node02=http://10.211.55.9:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
    ETCD_INITIAL_CLUSTER_STATE="new"
    

    启动etcd服务

    systemctl start etcd
    

    检查etcd集群状态

    etcdctl cluster-health
    

    检查etcd集群成员列表

    etcdctl  member  list
    

    配置master服务器

    1) 配置kube-apiserver配置文件

    [root@Master ~]# grep -v '^#' /etc/kubernetes/config

    KUBE_LOGTOSTDERR="--logtostderr=true"
    KUBE_LOG_LEVEL="--v=0"
    KUBE_ALLOW_PRIV="--allow-privileged=false"
    KUBE_MASTER="--master=http://10.10.10.14:8080"
    

    [root@Master ~]# grep -v '^#' /etc/kubernetes/apiserver

    KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
    KUBE_ETCD_SERVERS="--etcd-servers=http://10.10.10.14:2379"
    KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
    KUBE_ADMISSION_CONTROL="--admission-control=AlwaysAdmit"
    KUBE_API_ARGS=""
    

    2) 配置kube-controller-manager配置文件

    [root@Master ~]# grep -v '^#' /etc/kubernetes/controller-manager

    KUBE_CONTROLLER_MANAGER_ARGS=""
    

    3) 配置kube-scheduler配置文件

    [root@Master ~]# grep -v '^#' /etc/kubernetes/scheduler

    KUBE_SCHEDULER_ARGS="--address=0.0.0.0"
    

    4) 启动服务

    for i in  kube-apiserver kube-controller-manager kube-scheduler;do systemctl restart $i; systemctl enable $i;done
    

    配置node01节点服务器

    1) 配置etcd

    [root@Master ~]# etcdctl set /atomic.io/network/config '{"Network": "172.16.0.0/16"}'

    {"Network": "172.16.0.0/16"}
    

    2) 配置node1网络,本实例采用flannel方式来配置,如需其他方式,请参考Kubernetes官网。

    [root@node01 ~]# grep -v '^#' /etc/sysconfig/flanneld

    FLANNEL_ETCD_ENDPOINTS="http://10.211.55.8:2379"
    FLANNEL_ETCD_PREFIX="/atomic.io/network"
    FLANNEL_OPTIONS=""
    

    查看验证网络信息

    [root@Master ~]# etcdctl get /atomic.io/network/config

    { "Network": "172.16.0.0/16" }
    

    [root@Master ~]# etcdctl ls /atomic.io/network/subnets

    /atomic.io/network/subnets/172.16.69.0-24
    /atomic.io/network/subnets/172.16.6.0-24
    

    [root@Master ~]# etcdctl get /atomic.io/network/subnets/172.16.6.0-24

    {"PublicIP":"10.211.55.8"}
    

    [root@Master ~]# etcdctl get /atomic.io/network/subnets/172.16.69.0-24

    {"PublicIP":"10.211.55.9"}
    

    3) 配置node1 kube-proxy

    [root@node01 ~]# grep -v '^#' /etc/kubernetes/config

    KUBE_LOGTOSTDERR="--logtostderr=true"
    KUBE_LOG_LEVEL="--v=0"
    KUBE_ALLOW_PRIV="--allow-privileged=false"
    KUBE_MASTER="--master=http://10.10.10.14:8080"
    

    [root@node01 ~]# grep -v '^#' /etc/kubernetes/proxy

    KUBE_PROXY_ARGS="--bind=address=0.0.0.0"
    

    4) 配置node1 kubelet

    [root@node01 ~]# grep -v '^#' /etc/kubernetes/kubelet

    KUBELET_ADDRESS="--address=127.0.0.1"
    KUBELET_HOSTNAME="--hostname-override=10.10.10.15"
    KUBELET_API_SERVER="--api-servers=http://10.10.10.14:8080"
    KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
    KUBELET_ARGS=""
    

    5) 启动node01服务

    for i in flanneld kube-proxy kubelet docker;do systemctl restart $i;systemctl enable $i;systemctl status $i ;done
    

    配置node02节点服务器

    node2与node1配置基本一致,除下面一处例外

    [root@node2 ~]# vi /etc/kubernetes/kubelet

    KUBELET_HOSTNAME="--hostname-override=10.211.55.9"
    

    查看节点

    [root@Master ~]# kubectl get nodes

    NAME          STATUS    AGE
    10.211.55.8   Ready     18h
    10.211.55.9   Ready     13h
    

    最后

    image
    今日寄语:
    “有些路,走下去,会很累!不走,会后悔!️️”

    欢迎关注个人微信公众号:桃李报春 个人博客:http://leeyunt.top

    桃李报春

    相关文章

      网友评论

        本文标题:Centos7.0+安装配置使用简介Kubernetes (k8

        本文链接:https://www.haomeiwen.com/subject/mqabsctx.html