二进制方式部署k8s集群

目标任务:

1、Kubernetes集群部署架构规划

2、部署Etcd数据库集群

3、在Node节点安装Docker

4、部署Flannel网络插件

5、在Master节点部署组件(api-server,schduler,controller-manager)

6、在Node节点部署组件(kubelet,kube-proxy)

7、查看集群状态

8、运行⼀个测试示例

9、部署Dashboard(Web UI) 可选

准备环境

三台机器,所有机器相互做解析 centos7.6
关闭防⽕墙和selinux
关闭交换空间
临时关闭:swapoff -a
永久关闭:
vi /etc/fstab
找到如下内容:注释或删除
#/dev/sdX none swap sw 0 0
 
192.168.145.11 master1 
kube-apiserver,kube-controller-manager,kube-scheduler,etcd

192.168.145.12 node1
kubelet,kube-proxy,docker,flannel,etcd

192.168.145.13 node2
kubelet,kube-proxy,docker,flannel

三台机器都做域名解析

$ vim /etc/hosts
192.168.145.11 master1 
192.168.145.12 node1
192.168.145.13 node2

通过ping做连通测试

部署Etcd集群

上面三台服务器已经搭建完成,但是彼此是独立的,没有互联。接下来,要把三台服务器关联起来,按照我们设计的,一台做master,两台做node。首先把etcd数据库部署在三台服务器上,他们彼此之间需要通信通过https协议,所以需要安装证书。

生成cfssl证书

下载cfssl⼯具:下载的这些是可执行的二进制命令直接用就可以了
[root@master1 ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
[root@master1 ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
[root@master1 ~]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

[root@master1 ~]# ls
            cfssl-certinfo_linux-amd64  cfssljson_linux-amd64  cfssl_linux-amd64 


[root@master1 ~]# chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64


放在usr/local/bin下面,方便直接使用命令
[root@master1 ~]# mv cfssl_linux-amd64 /usr/local/bin/cfssl
[root@master1 ~]# mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
[root@master1 ~]# mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo

生成Etcd证书:
创建以下三个文件:
[root@master1 ~]# mkdir cert
[root@master1 ~]# cd cert/
[root@master1 cert]# vim ca-config.json #生成ca中⼼的
[root@master1 cert]# cat ca-config.json
{
   
   
 "signing": {
   
   
   "default": {
   
   
     "expiry": "87600h"
   },
   "profiles": {
   
   
     "www": {
   
   
       "expiry": "87600h",
       "usages": [
         "signing",
         "key encipherment",
         "server auth",
         "client auth"
       ]
     }
   }
 }
}


[root@master1 cert]# vim ca-csr.json #生成ca中⼼的证书请求文件
[root@master1 cert]# cat ca-csr.json
{
   
   
    "CN": "etcd CA",
    "key": {
   
   
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
   
   
            "C": "CN",
            "L": "Beijing",
            "ST": "Beijing"
        }
    ]
}
[root@master1 cert]# vim server-csr.json #生成服务器的证书(向ca发送请求)请求文件
[root@master1 cert]# cat server-csr.json
{
   
   
    "CN": "etcd",
    "hosts": [
        "192.168.145.11",
        "192.168.145.12",
        "192.168.145.13"
    ],
    "key": {
   
   
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
   
   
            "C": "CN",
            "L": "BeiJing",
            "ST": "BeiJing"
        }
    ]
}

生成ca认证证书:
[root@master1 cert]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
通过认证文件去签发证书
[root@master1 cert]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server
[root@master1 cert]# ls *pem
ca-key.pem ca.pem server-key.pem server.pem


server.pem 要用的证书
server-key.pem 要用的私钥

安装Etcd:

二进制包下载地址:

https://github.com/coreos/etcd/releases/tag/v3.2.12

以下部署步骤在规划的三个etcd节点操作⼀样,唯⼀不同的是etcd配置文件中的服务器IP要写当前的:

解压二进制包:
以下步骤三台机器都操作:

源码安装etcd:

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

// bin目录执行文件   cfg存启动命令 ssl存证书,刚才生成的cert/ .pem证书
# mkdir /opt/etcd/{bin,cfg,ssl} -p 
# tar zxvf etcd-v3.2.12-linux-amd64.tar.gz
# mv etcd-v3.2.12-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/

编写etcd配置文件:

三台都操作

创建etcd配置文件:
# vim /opt/etcd/cfg/etcd 

#[Member]
ETCD_NAME="etcd01" #节点名称,各个节点不能相同
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.246.162:2380" #写每个节点自己的ip
ETCD_LISTEN_CLIENT_URLS="https://192.168.246.162:2379" #写每个节点自己的ip
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.246.162:2380" #写每个节点的ip
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.246.162:2379" #写每个节点的ip
ETCD_INITIAL_CLUSTER="etcd01=https://192.168.246.162:2380,etcd02=https://
192.168.246.164:2380,etcd03=https://192.168.246.165:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

具体如下:

master:创建etcd配置文件:
# vim /opt/etcd/cfg/etcd 

#[Member]
ETCD_NAME="etcd01"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.145.11:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.145.11:2379"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.145.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.145.11:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://192.168.145.11:2380,etcd02=https://192.168.145.12:2380,etcd03=https://192.168.145.13:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

node1:创建etcd配置文件:
# vim /opt/etcd/cfg/etcd 

#[Member]
ETCD_NAME="etcd02"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.145.12:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.145.12:2379"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.145.12:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.145.12:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://192.168.145.11:2380,etcd02=https://192.168.145.12:2380,etcd03=https://192.168.145.13:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

node2:创建etcd配置文件:
# vim /opt/etcd/cfg/etcd 

#[Member]
ETCD_NAME=
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值