Kubernetes集群搭建(二进制方式)未完成


theme: qklhk-chocolate

highlight: tomorrow-night

三、 Kubernetes集群搭建(二进制方式)

1、安装要求

在开始之前,部署 Kubernetes 集群机器需要满足以下几个条件:

(1)一台或多台机器,操作系统 CentOS7.x-86_x64

(2)硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU,硬盘 30GB 或更多

(3)集群中所有机器之间网络互通

(4)可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点

(5)禁止 swap 分区

2、准备环境

2.1. 软件环境

| 软件 | 版本 | | --- | --- | | 操作系统 | CentOS 7 | | Docker | 19-ce | | Kubernetes | 1.19 |

2.2. 服务器规划

| 主机 | IP地址 | | --- | --- | | Master | 37.10 | | Node1 | 37.11 |

3、系统初始化

3.1. 关闭防火墙、禁止开机启动防火墙

```Master和Node systemctl stop firewalld

systemctl disable firewalld ``` 3.2. 关闭selinux

```Master和Node

永久

sed -i 's/enforcing/disabled/' /etc/selinux/config

临时

setenforce 0 ``` 3.3. 关闭swap

```Master和Node

临时

swapoff -a

永久

sed -ri 's/.swap./#&/' /etc/fstab 3.4. 将桥接的IPv4流量传递到iptables的链 Master和Node cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF

生效

sysctl --system ```

3.5. 时间同步

```Master和Node yum install ntpdate -y

ntpdate time.windows.com

设置时区

timedatectl set-timezone Asia/Shanghai 3.6. 主机名 Master和Node hostnamectl set-hostname 3.7. 在 `Master` 添加 hosts Master cat >> /etc/hosts << EOF 192.168.37.10 master 192.168.37.11 node1 EOF ```

4、部署 Etcd 集群

Etcd 是一个分布式键值存储系统,Kubernetes 使用 Etcd 进行数据存储,所以先准备一个 Etcd 数据库,为解决 Etcd 单点故障,应采用集群方式部署,这里使用 3 台组建集群,可容忍 1 台机器故障,当然,你也可以使用 5 台组建集群,可容忍 2 台机器故障。

| 节点名称 | IP地址 | | --- | --- | | | | | | | | | |

4.1. 准备 cfssl 证书生成工具

cfssl 是一个开源的证书管理工具,使用 json 文件生成证书,相比 openssl 更方便使用。

找任意一台服务器操作,这里用 Master 节点。 ```Master

下载文件

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

添加执行权限

chmod +x cfssllinux-amd64 cfssljsonlinux-amd64 cfssl-certinfo_linux-amd64

移动文件到指定目录

mv cfssl_linux-amd64 /usr/local/bin/cfssl

mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo ``` 4.2. 生成 Etcd 证书

(1)自签证书颁发机构(CA)

创建工作目录: ```Master mkdir -p ~/TLS/{etcd,k8s}

cd TLS/etcd 自签 CA Master cat ca-config.json { "signing": { "default": { "expiry": "87600h" }, "profiles": { "www": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } } ```

Master cat > ca-csr.json << EOF { "CN": "etcd CA", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "Beijing", "ST": "Beijing" } ] } EOF

生成证书 Master cfssl gencert -initca ca-csr.json | cfssljson -bare ca - (2)使用自签 CA 签发 Etcd HTTPS 证书

创建证书申请文件:

```Master cat > server-csr.json << EOF { "CN": "etcd", "hosts": [ "192.168.37.10", "192.168.37.11" ],

"key": { "algo": "rsa", "size": 2048 },

"names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing" } ]
} EOF 生成证书 Master cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server 4.3. 从 Github 下载二进制文件 Master wget https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz ``` 4.4. 部署 Etcd 集群

(1)创建工作目录并解压二进制包

Master mkdir /opt/etcd/{bin,cfg,ssl} -p tar zxvf etcd-v3.4.9-linux-amd64.tar.gz mv etcd-v3.4.9-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/ (2)创建 etcd 配置文件 ```Master cat > /opt/etcd/cfg/etcd.conf << EOF

[Member]

节点名称,集群中唯一

ETCD_NAME="etcd-1"

数据目录

ETCDDATADIR="/var/lib/etcd/default.etcd"

集群通信监听地址

ETCDLISTENPEER_URLS="https://192.168.37.10:2380"

客户端访问监听地址

ETCDLISTENCLIENT_URLS="https://192.168.37.10:2379"

[Clustering]

集群通告地址

ETCDINITIALADVERTISEPEERURLS="https://192.168.37.10:2380"

客户端通告地址

ETCDADVERTISECLIENT_URLS="https://192.168.37.10:2379"

集群节点地址

ETCDINITIALCLUSTER="etcd-1=https://192.168.37.10:2380,etcd-2=https://192.168.37.11:2380,etcd-3=https://192.168.37.12:2380"

集群 Token

ETCDINITIALCLUSTER_TOKEN="etcd-cluster"

加入集群的当前状态,new 是新集群,existing 表示加入已有集群

ETCDINITIALCLUSTER_STATE="new" EOF ``` (3)systemd 管理 etcd

```Master cat > /usr/lib/systemd/system/etcd.service <

[Service] Type=notify EnvironmentFile=/opt/etcd/cfg/etcd.conf ExecStart=/opt/etcd/bin/etcd \ --cert-file=/opt/etcd/ssl/server.pem \ --key-file=/opt/etcd/ssl/server-key.pem \ --peer-cert-file=/opt/etcd/ssl/server.pem \ --peer-key-file=/opt/etcd/ssl/server-key.pem \ --trusted-ca-file=/opt/etcd/ssl/ca.pem \ --peer-trusted-ca-file=/opt/etcd/ssl/ca.pem \ --logger=zap Restart=on-failure LimitNOFILE=65536

[Install] WantedBy=multi-user.target EOF ```

(4)拷贝刚才生成的证书

把刚才生成的证书拷贝到配置文件中的路径:

Master cp ~/TLS/etcd/ca*pem ~/TLS/etcd/server*pem /opt/etcd/ssl/

(5)将上面节点 1 所有生成的文件拷贝到节点 2 和节点 Master scp -r /opt/etcd/ root@192.168.37.11:/opt/ scp /usr/lib/systemd/system/etcd.service root@192.168.37.11:/usr/lib/systemd/system/ 然后在节点 2 修改 etcd.conf 配置文件中的节点名称和当前服务器 IP: ```Node cat /opt/etcd/cfg/etcd.conf

[Member]

节点名称,集群中唯一

ETCD_NAME="etcd-2"

数据目录

ETCDDATADIR="/var/lib/etcd/default.etcd"

集群通信监听地址

ETCDLISTENPEER_URLS="https://192.168.37.11:2380"

客户端访问监听地址

ETCDLISTENCLIENT_URLS="https://192.168.37.11:2379"

[Clustering]

集群通告地址

ETCDINITIALADVERTISEPEERURLS="https://192.168.37.11:2380"

客户端通告地址

ETCDADVERTISECLIENT_URLS="https://192.168.37.11:2379"

集群节点地址

ETCDINITIALCLUSTER="etcd-1=https://192.168.37.10:2380,etcd-2=https://192.168.37.11:2380,etcd-3=https://192.168.37.12:2380"

集群 Token

ETCDINITIALCLUSTER_TOKEN="etcd-cluster"

加入集群的当前状态,new 是新集群,existing 表示加入已有集群

ETCDINITIALCLUSTER_STATE="new" ```

(6)启动并设置开机启动此步要同时进行!!!否则不成功

```Master和Node systemctl daemon-reload

systemctl start etcd

systemctl enable etcd ```

```node1

gogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogogo```go

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值