使用二进制单机部署k8s 1.18.2

单机部署K8s
本文详细介绍如何在单台CentOS 7虚拟机上,通过二进制方式部署Kubernetes (K8s) 集群,包括安装etcd、配置HTTPS证书、部署K8s master和node组件,以及验证部署过程。

背景:对于k8s学习者,有一个真实的环境十分重要,但要用二进制搭建一个学习环境是一件十分复杂的过程,查了一下网上的文档,大多数都是几台服务器来搭建集群的,本文以一台机器用二进制的方法搭建一个简单的k8s集群。

1、机器环境

操作系统: centos 7

虚拟机

ip:192.168.225.132

 

2、单机部署etcd

1)下载etcd

使用版本3.4.7 ,下载地址

 https://github.com/etcd-io/etcd/releases/download/v3.4.7/etcd-v3.4.7-linux-amd64.tar.gz

2)解压后建立下图显示的目录结构

   bin 存放解压出来的两个程序文件 etcd 和etcdctl,,所有执行文件需要在命令行使用chmod 777 文件名,赋予执行权限

   cfg 存放配置文件

   data 存放数据文件

   ssl   存放自生成证书

 

3)安装生成https证书软件cfssl

curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl

curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson

curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo

chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo

 

4)在ssl目录生成相关https证书

首先,建立如下3个配置文件

新建etcd-ca-config.json,具体内容如下:

{

  "signing": {

    "default": {

      "expiry": "87600h"

    },

    "profiles": {

      "www": {

         "expiry": "87600h",

         "usages": [

            "signing",

            "key encipherment",

            "server auth",

            "client auth"

        ]

      }

    }

  }

}

 

新建etcd-ca-csr.json,具体内容如下:
{

    "CN": "etcd CA",

    "key": {

        "algo": "rsa",

        "size": 2048

    },

    "names": [

        {

            "C": "CN",

            "L": "Beijing",

            "ST": "Beijing"

        }

    ]

}

 

新建etcd-server-csr.json,具体内容如下,其中标红的ip地址为需要安装的机器ip地址和本地地址

{

    "CN": "etcd",

    "hosts": [

    "192.168.225.132",

    "127.0.0.1"

    

    ],

    "key": {

        "algo": "rsa",

        "size": 2048

    },

    "names": [

        {

            "C": "CN",

            "L": "BeiJing",

            "ST": "BeiJing"

        }

    ]

}

 

然后,在ssl目录下执行如下2条命令:

命令1:cfssl gencert -initca etcd-ca-csr.json | cfssljson -bare etcd-ca –

 

命令2:cfssl gencert -ca=etcd-ca.pem -ca-key=etcd-ca-key.pem -config=etcd-ca-config.json -profile=www etcd-server-csr.json | cfssljson -bare etcd-server

 

最终结果如下图,表示所有https证书生成成功

 

5)编写配置文件,在cfg目录下新建配置文件,文件名为etcd,具体内容如下,标红的ip地址要etcd-server-csr.json厘米设定的一致

#[Member]

ETCD_NAME="etcd01"

ETCD_DATA_DIR="/root/k8s/data/etcd" #数据保存路径

ETCD_LISTEN_PEER_URLS="https://192.168.225.132:2380"

ETCD_LISTEN_CLIENT_URLS="https://192.168.225.132:2379,http://127.0.0.1:2379"

 

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.225.132:2380"

ETCD_ADVERTISE_CLIENT_URLS="https://192.168.225.132:2379"

#ETCD_INITIAL_CLUSTER="etcd01=https://192.168.225.132:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-0"

ETCD_INITIAL_CLUSTER_STATE="new"

 

#具体https证书路径

ETCD_CERT_FILE="/root/k8s/ssl/etcd-server.pem"

ETCD_KEY_FILE="/root/k8s/ssl/etcd-server-key.pem"

ETCD_TRUSTED_CA_FILE="/root/k8s/ssl/etcd-ca.pem"

ETCD_CLIENT_CERT_AUTH="true"

ETCD_PEER_CERT_FILE="/root/k8s/ssl/etcd-server.pem"

ETCD_PEER_KEY_FILE="/root/k8s/ssl/etcd-server-key.pem"

ETCD_PEER_TRUSTED_CA_FILE="/root/k8s/ssl/etcd-ca.pem"

ETCD_PEER_CLIENT_CERT_AUTH="true"

 

 

6)编写服务启动文件,注意标红部分

使用命令:vi /usr/lib/systemd/system/etcd.service,录入如下配置内容:

[Unit]

Description=Etcd Server

After=network.target

After=network-online.target

Wants=network-online.target

[Service]

Type=notify

User=root

EnvironmentFile=-/root/k8s/cfg/etcd  #配置文件所在路径

WorkingDirectory=/var/lib/etcd/      #手工预先建立的目录

ExecStart=/root/k8s/bin/etcd         #程序执行文件所在目录

Restart=on-failure

LimitNOFILE=65536

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值