二进制kubernetes高可用集群搭建实验(二)环境部署

二、高可用集群部署

1. CA证书(任意节点)

1.1 安装cfssl

cfssl是非常好用的CA工具,我们用它来生成证书和秘钥文件 安装过程比较简单,如下:

# 下载
$ mkdir -p ~/bin
$ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O ~/bin/cfssl
$ wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O ~/bin/cfssljson

# 修改为可执行权限
$ chmod +x ~/bin/cfssl ~/bin/cfssljson

# 设置PATH
$ vi ~/.bash_profile
$ source ~/.bash_profile

# 验证
$ cfssl version

1.2 生成根证书

根证书是集群所有节点共享的,只需要创建一个 CA 证书,后续创建的所有证书都由它签名。

# 生成证书和私钥
$ cd target/pki
$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca

# 生成完成后会有以下文件(我们最终想要的就是ca-key.pem和ca.pem,一个秘钥,一个证书)
$ ls
ca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem

# 创建目录
$ ssh <user>@<node-ip> "mkdir -p /etc/kubernetes/pki/"

# 分发到每个主节点
$ scp ca*.pem <user>@<node-ip>:/etc/kubernetes/pki/

2. 部署etcd集群(master节点)

2.1 下载etcd

如果你是从网盘下载的二进制可以跳过这一步(网盘中已经包含了etcd,不需要另外下载)。 没有从网盘下载bin文件的话需要自己下载etcd

$ wget https://github.com/coreos/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.tar.gz

2.2 生成证书和私钥

# 生成证书、私钥
$ cd target/pki/etcd
$ cfssl gencert -ca=../ca.pem \
    -ca-key=../ca-key.pem \
    -config=../ca-config.json \
    -profile=kubernetes etcd-csr.json | cfssljson -bare etcd

# 分发到每个etcd节点
$ scp etcd*.pem <user>@<node-ip>:/etc/kubernetes/pki/

2.3 创建service文件

# scp配置文件到每个master节点
$ scp target/<node-ip>/services/etcd.service <node-ip>:/etc/systemd/system/

# 创建数据和工作目录
$ ssh <user>@<node-ip> "mkdir -p /var/lib/etcd"

2.4 启动服务

etcd 进程首次启动时会等待其它节点的 etcd 加入集群,命令 systemctl start etcd 会卡住一段时间,为正常现象。

#启动服务
$ systemctl daemon-reload && systemctl enable etcd && systemctl restart etcd

#查看状态
$ service etcd status

#查看启动日志
$ journalctl -f -u etcd

3. 部署api-server(master节点)

3.1 生成证书和私钥

# 生成证书、私钥
$ cd target/pki/apiserver
$ cfssl gencert -ca=../ca.pem \
  -ca-key=../ca-key.pem \
  -config=../ca-config.json \
  -profile=kubernetes kubernetes-csr.json | cfssljson -bare kubernetes

# 分发到每个master节点
$ scp kubernetes*.pem <user>@<node-ip>:/etc/kubernetes/pki/

3.2 创建service文件

# scp配置文件到每个master节点
$ scp target/<node-ip>/services/kube-apiserver.service <user>@<node-ip>:/etc/systemd/system/

# 创建日志目录
$ ssh <user>@<node-ip> "mkdir -p /var/log/kubernetes"

3.3 启动服务

#启动服务
$ systemctl daemon-reload && systemctl enable kube-apiserver && systemctl restart kube-apiserver

#查看运行状态
$ service kube-apiserver status

#查看日志
$ journal
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
k8s(Kubernetes)是一个开源的容器编排系统,它可以自动化地部署、扩展和操作容器化的应用程序。k8s二进制可用集群部署是指在生产环境中使用k8s二进制文件手动部署可用的k8s集群。 首先,需要准备三台或以上的服务器,并为每台服务器安装好操作系统(如Ubuntu、CentOS等)。然后,从kubernetes官网下载对应版本的k8s二进制文件,并在每台服务器上进行解压和配置。在配置过程中,需要为每个节点创建和配置kubelet、kube-controller-manager、kube-scheduler和kube-apiserver等组件,同时配置etcd集群用于存储集群的元数据。 接下来,需要配置网络插件(如Flannel或Calico)用于实现容器之间的通信和网络隔离。此外,还需要配置负载均衡器(如Nginx、HAProxy)来将流量均衡到k8s集群中的各个节点上。 在部署完集群后,需要进行一系列的测试和验证工作,确保集群的可用性和稳定性。这包括检查节点之间的通信、集群中各组件的健康状态、容器的调度和网络连接等方面。 最后,需要配置监控和日志系统(如Prometheus、Grafana、ELK等)来实时监控和收集集群的运行状态和日志信息。此外,还可以考虑配置自动化运维工具(如Ansible、Terraform)来简化集群的管理和维护工作。 通过以上步骤,就可以实现k8s二进制可用集群的部署和运维工作。这样就可以保证在生产环境中,k8s集群能够实现可用性、稳定性和可扩展性,满足企业应用程序的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值