文档章节

Kubernetes 1.8.4 手动安装教程-安装Etcd(二)

tqyin
 tqyin
发布于 01/07 19:36
字数 607
阅读 371
收藏 0

      在开始安装 Kubernetes 之前,需要先将一些必要系统创建完成,其中 Etcd 就是 Kubernetes 最重要的一环,Kubernetes会将大部分信息储存于Etcd上,来提供给其他节点索取,以确保整个集群运作与沟通正常。

创建集群 CA 与 Certificates

在这部分,将会需要产生 client 与 server 的各组件 certificates,并且替 Kubernetes admin user 产生 client 证书。

  • 建立/etc/etcd/ssl文件夹,然后进入目录。
    mkdir -p /etc/etcd/ssl && cd /etc/etcd/ssl

     

  • 生成ca-config.json与etcd-ca-csr.json文件,并产生 CA 密钥:
    生成ca-config.json文件

    cat <<EOF > ca-config.json
    {
        "signing": {
            "default": {
                "expiry": "87600h"
            },
            "profiles": {
                "kubernetes": {
                    "usages": [
                        "signing",
                        "key encipherment",
                        "server auth",
                        "client auth"
                    ],
                    "expiry": "87600h"
                }
            }
        }
    }
    EOF

    生成etcd-ca-csr.json文件

    cat <<EOF > etcd-ca-csr.json
    {
        "CN": "etcd",
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "SC",
                "ST": "ChengDu",
                "L": "ChengDu",
                "O": "etcd",
                "OU": "Etcd Security"
            }
        ]
    }
    EOF

    生成证书

    cfssl gencert -initca etcd-ca-csr.json | cfssljson -bare etcd-ca
  • 生成etcd-csr.json文件,并产生 kube-apiserver certificate 证书:
    生成etcd-csr.json文件
    cat <<EOF > etcd-csr.json
    {
        "CN": "etcd",
        "hosts": [
            "127.0.0.1",
            "10.0.0.162"
        ],
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "SC",
                "ST": "ChengDu",
                "L": "ChengDu",
                "O": "etcd",
                "OU": "Etcd Security"
            }
        ]
    }
    EOF

    注意hosts更换成自己的IP,这里我的etcd只有一个节点并且在162节点上。

  • 生成证书
    cfssl gencert \
      -ca=etcd-ca.pem \
      -ca-key=etcd-ca-key.pem \
      -config=ca-config.json \
      -profile=kubernetes \
      etcd-csr.json | cfssljson -bare etcd

Etcd 安装与设定

  • 首先在master(162)节点下载 Etcd,并解压缩放到 /opt 底下与安装:
    export ETCD_URL="https://github.com/coreos/etcd/releases/download" 
    cd && wget -qO-  "${ETCD_URL}/v3.2.9/etcd-v3.2.9-linux-amd64.tar.gz" | tar -zx
    mv etcd-v3.2.9-linux-amd64/etcd* /usr/local/bin/ && rm -rf etcd-v3.2.9-linux-amd64
  • 完成后新建 Etcd Group 与 User,并建立 Etcd 配置文件目录:
    groupadd etcd && useradd -c "Etcd user" -g etcd -s /sbin/nologin -r etcd
  • 配置etcd.conf和etcd.service
    生成etcd.conf
    cat <<EOF > /etc/etcd/etcd.conf
    # [member]
    ETCD_NAME=node162
    ETCD_DATA_DIR=/var/lib/etcd
    ETCD_LISTEN_PEER_URLS=https://0.0.0.0:2380
    ETCD_LISTEN_CLIENT_URLS=https://0.0.0.0:2379
    ETCD_PROXY=off
    
    # [cluster]
    ETCD_ADVERTISE_CLIENT_URLS=https://10.0.0.162:2379
    ETCD_INITIAL_ADVERTISE_PEER_URLS=https://10.0.0.162:2380
    ETCD_INITIAL_CLUSTER=node162=https://10.0.0.162:2380
    ETCD_INITIAL_CLUSTER_STATE=new
    ETCD_INITIAL_CLUSTER_TOKEN=etcd-k8s-cluster
    
    # [security]
    ETCD_CERT_FILE="/etc/etcd/ssl/etcd.pem"
    ETCD_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"
    ETCD_CLIENT_CERT_AUTH="true"
    ETCD_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"
    ETCD_AUTO_TLS="true"
    ETCD_PEER_CERT_FILE="/etc/etcd/ssl/etcd.pem"
    ETCD_PEER_KEY_FILE="/etc/etcd/ssl/etcd-key.pem"
    ETCD_PEER_CLIENT_CERT_AUTH="true"
    ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/ssl/etcd-ca.pem"
    ETCD_PEER_AUTO_TLS="true"
    EOF
    

    若与该教程 IP 不同的话,请用自己 IP 取代10.0.0.162。
    生成etcd.service

    cat <<EOF > /lib/systemd/system/etcd.service
    [Unit]
    Description=Etcd Service
    After=network.target
    
    [Service]
    Environment=ETCD_DATA_DIR=/var/lib/etcd/default
    EnvironmentFile=-/etc/etcd/etcd.conf
    Type=notify
    User=etcd
    PermissionsStartOnly=true
    ExecStart=/usr/local/bin/etcd
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    EOF

     

  • 通过简单指令验证:

    export CA="/etc/etcd/ssl"
    ETCDCTL_API=3 etcdctl \
        --cacert=${CA}/etcd-ca.pem \
        --cert=${CA}/etcd.pem \
        --key=${CA}/etcd-key.pem \
        --endpoints="https://10.0.0.162:2379" \
        endpoint health

    若与该教程 IP 不同的话,请用自己 IP 取代10.0.0.162。

 

© 著作权归作者所有

共有 人打赏支持
tqyin
粉丝 27
博文 77
码字总数 35391
作品 0
成都
高级程序员
使用二进制安装包部署kubernetes v1.9.8集群的参考手册

一、使用二进制方式部署k8s的Master节点 more /usr/lib/systemd/system/kube-apiserver.service more /usr/lib/systemd/system/kube-controller-manager.service more /usr/lib/systemd/sys......

watermelonbig
05/24
0
0
使用Kubespray在虚拟机上部署Kubernetes

Kubespray 是 Kubernetes incubator 中的项目,目标是提供 Production Ready Kubernetes 部署方案,该项目基础是通过 Ansible Playbook 来定义系统与 Kubernetes 集群部署的任务,具有以下几...

Bravepro
2017/12/23
0
0
Kubernetes学习2--集群部署与搭建

接着上一篇的介绍完核心概念后,尝试下搭建k8s的集群,准备了六台虚拟机用于部署k8s的运行环境。 一. 环境准备及虚拟机信息 1. 虚拟机环境 2. 六台虚机信息(自行配置 /etc/hosts 文件) 3....

weixin_29115985
01/02
0
0
手动搭建Kubernetes1.8高可用集群(4)Master

一、准备 1、etcd集群 2、证书 3、Node1,Node2上搭建Master,以下所有操作都在Node1和2上进行 4、创建目录 /etc/kubernetes/manifests 属主kube 权限0700 二、安装kubelet,kubectl 1、复制二进...

Bravepro
06/29
0
0
手动安装K8s第三节:etcd集群部署

手动安装K8s第三节:etcd集群部署 准备安装包 https://github.com/coreos/etcd 版本:3.2.18 wget https://github.com/coreos/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.tar......

OpenStack2015
06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue 简单video组件开发

<template> <div id="videoPage"> <video id="My_video" src="../../../static/img/login/bg.mp4" webkit-playsinline playsinline ref="video" @click="playVideo"></video> <......

南山有台
25分钟前
1
0
Linux 安装molten

0.zipkin 开源分布式系统调用跟踪工具 molten为php作对应的数据收集1.molten安装相关请参考 https://github.com/chuan-yun/Molten2.mkdir /usr/local/molten3.git clone https://github...

余温灬未存
25分钟前
0
0
HTML转pdf

<body> <div class="chart" id="chart"> <img src="../images/group10.png" alt="图片加载失败" /> <img src="../images/permission.png" alt="图片加载失败" /> Hello </div> <span id="scr......

皇上洗碗
27分钟前
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
35分钟前
0
0
DUBBO启动过程

Dubbo的启动主要是发布服务的过程,起到核心作用的就是ServiceConfig(ServiceConfig就是我们在Dubbo的配置文件中配置的dubbo:service这些配置项对应的实体类)。服务的启动初始位置也基本是...

明理萝
48分钟前
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部