zoukankan      html  css  js  c++  java
  • Etcd在Linux CentOS7下载、安装

    概述:

    etcd完整的cluster(集群)至少有三台,这样才能选举出一个master (主节点)其他两个就是node(次节点)。

    如果小于 3 台则无法进行选举,造成集群 不可用。

    之前Etcd用的是4000和4001端口,后来由IANA分配了现在的2379和2380端口。

    2379端口:提供HTTP API服务,和etcdctl交互;

    2380端口:集群中节点间通讯;

    一、下载etcd

    [root@Cent0S7 ~]# curl -O https://github.com/etcd-io/etcd/releases/download/v3.1.5/etcd-v3.1.5-linux-amd64.tar.gz
    

        PS:curl默认不支持Https,命令#curl -V(V大写)查看Protocols项有没有https ,如果没有就要用命令:# yum install openssl-devel 装SSL

    二、 解压 etcd-v3.1.5-linux-amd64.tar.gz 压缩文件

    [root@Cent0S7 ~]# tar -zxf etcd-v3.1.5-linux-amd64.tar.gz
    [root@Cent0S7 ~]# cd etcd-v3.1.5-linux-amd64/

            将文件夹中etcdetcdctl两个文件添加可执行文件路径到环境变量PATH中。

     三、etcd是服务端,etcdctl是运维人员操作的控制端,一般只需要装etcd,现在是学习就都装在同一台机器。

    [root@Cent0S7 etcd-v3.1.5-linux-amd64]# mv etcd /usr/local/bin
    [root@Cent0S7 etcd-v3.1.5-linux-amd64]# mv etcdctl /usr/local/bin
    

           PS:用echo $PATH查看自己的环境变量路径

    四、修改环境变量PATH

    [root@Cent0S7 ~]# vi /etc/profile
    

    五、在文件最后加入变量,因为etcd默认使用V2版本,我们需要V3版本的API。

    export ETCDCTL_API=3
    

    六、变量生效,其他用户生效也要执行下面命令。

    [root@Cent0S7 ~]# source /etc/profile

    七、查看版本信息

    [root@Cent0S7 ~]# etcdctl -v 或 etcdctl -version
    etcdctl version: 3.1.5
    API version: 3.1
    

    八、创建etcd配置文件,一定需要确认用户数据目录etcd有读写权限,否则服务可能无法正确启动

    [root@Cent0S7 ~]# mkdir -p /var/lib/etcd/
    [root@Cent0S7 ~]# cat <<EOF | sudo tee /etc/etcd.conf
    #节点名称
    ETCD_NAME=$(hostname -s)
    #数据存放位置
    ETCD_DATA_DIR=/var/lib/etcd/
    EOF

    九、创建开机启动文件

    [root@Cent0S7 ~]# cat <<EOF | sudo tee /etc/systemd/system/etcd.service
    
    [Unit]
    Description=Etcd Server
    Documentation=https://github.com/coreos/etcd
    After=network.target
    
    [Service]
    User=root
    Type=notify
    #这个文件特别关键,etcd使用的环境变量都需要通过环境变量文件读取
    EnvironmentFile=-/etc/etcd.conf
    ExecStart=/usr/local/bin/etcd
    Restart=on-failure
    RestartSec=10s
    LimitNOFILE=40000
    
    [Install]
    WantedBy=multi-user.target
    EOF 
    

     PS:EnvironmentFile=-/etc/etcd.conf 这个配置项里/etc前的-是K8S生成配置文件时就有的,不是我误写的。

    十、重新加载配置 && 开机启动 && 启动etcd

    [root@Cent0S7 ~]# systemctl daemon-reload && systemctl enable etcd && systemctl start etcd

        开机启动设置状态,状态enabled

    [root@Cent0S7 ~]# systemctl list-unit-files etcd.service
    UNIT FILE    STATE  
    etcd.service enabled
    
    1 unit files listed.
    

     查看etcd状态

    [root@Cent0S7 ~]# systemctl show etcd.service
    Type=notify
    Restart=on-failure
    NotifyAccess=main
    RestartUSec=10s
    TimeoutStartUSec=1min 30s
    TimeoutStopUSec=1min 30s
    WatchdogUSec=0
    WatchdogTimestamp=Sun 2020-11-29 22:44:07 CST
    WatchdogTimestampMonotonic=9160693425
    ------  剩余内容 (略)  -------

    十一、查看2379端口是否启动成功

    [root@Cent0S7 ~]# netstat -an |grep 2379
    tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN     
    tcp        0      0 127.0.0.1:53156         127.0.0.1:2379          ESTABLISHED
    tcp        0      0 127.0.0.1:2379          127.0.0.1:53156         ESTABLISHED

        PS: CentOS默认没有装netstat,需要 # yum install -y net-tools 自己装

    十二、测试

    [root@Cent0S7 ~]# etcdctl put mykey "this is etcd"
    OK
    [root@Cent0S7 ~]# etcdctl get mykey
    mykey
    this is etcd

    新建put后OK ,输出也能看到值 this is etcd 启动成功。

    #####################   报错  #################################

    错误:

    [tomcat@Cent0S7 ~]$ etcdctl put mykey "this is awesome"
    No help topic for 'put'
    

    解决方法:

    export ETCDCTL_API=3

    #####################  报错     ################################

    参考文章:

    http://cnblogs.com/wujuntian/p/12837926.html

    http://blog.51cto.com/zlyang/1951164

    http://blog.csdn.net/gaowenhui2008/article/details/95961967

    http://cnblogs.com/davygeek/p/7154780.html

    http://blog.csdn.net/skh2015java/article/details/94012643

  • 相关阅读:
    uva10986 堆优化单源最短路径(pas)
    动态规划②——线性动态规划(背包)
    UVA567
    动态规划①——记忆化搜索
    网络号与主机号的区分与计算(转)
    故障处理-ORA-00376/ORA-01110
    Oracle的自动统计信息不收集直方图的信息
    Oracle 11g的Redo Log和Archive Log的分析方法
    SQL优化 1
    oracle 11g 通过在线重定义方式修改表结构
  • 原文地址:https://www.cnblogs.com/wutou/p/14056868.html
Copyright © 2011-2022 走看看