基于 kubeasz 的 Kubernetes 部署最佳实践

一、环境准备

  1、三台8核/16G内存/500G高速硬盘服务器和三台16核/32G内存/500G高速硬盘服务器

  2、CentOS 7

  3、关闭selinux和关闭防火墙

  4、升级系统内核(参考:https://www.cnblogs.com/a120608yby/p/10169364.html)

二、配置免密登录

# 创建密钥对
ssh-keygen -q -N ''
 
复制密钥到所有节点包括自身
ssh-copy-id 所有节点的IP地址

三、部署

  1、下载源码、二进制文件或离线镜像

export release=3.5.2
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown

  2、下载kubeasz代码、二进制、默认容器镜像

# 国内环境
./ezdown -D
 
# 海外环境
./ezdown -D -m standard

  3、创建集群

# 容器化运行kubeasz
./ezdown -S
 
# 创建新集群 k8s-01
docker exec -it kubeasz ezctl new k8s-01
 
# 配置/etc/kubeasz/clusters/k8s-01/hosts和/etc/kubeasz/clusters/k8s-01/config.yml
# vim hosts
# 'etcd' cluster should have odd member(s) (1,3,5,...)
[etcd]
172.16.0.1
172.16.0.2
172.16.0.3
 
# master node(s), set unique 'k8s_nodename' for each node
# CAUTION: 'k8s_nodename' must consist of lower case alphanumeric characters, '-' or '.',
# and must start and end with an alphanumeric character
[kube_master]
172.16.0.1 k8s_nodename='master-01'
172.16.0.2 k8s_nodename='master-02'
172.16.0.3 k8s_nodename='master-03'
 
# work node(s), set unique 'k8s_nodename' for each node
# CAUTION: 'k8s_nodename' must consist of lower case alphanumeric characters, '-' or '.',
# and must start and end with an alphanumeric character
[kube_node]
172.16.0.4 k8s_nodename='worker-01'
172.16.0.5 k8s_nodename='worker-02'
172.16.0.6 k8s_nodename='worker-03'
 
# [optional] harbor server, a private docker registry
# 'NEW_INSTALL': 'true' to install a harbor server; 'false' to integrate with existed one
[harbor]
#192.168.1.8 NEW_INSTALL=false
 
# [optional] loadbalance for accessing k8s from outside
[ex_lb]
#192.168.1.6 LB_ROLE=backup EX_APISERVER_VIP=192.168.1.250 EX_APISERVER_PORT=8443
#192.168.1.7 LB_ROLE=master EX_APISERVER_VIP=192.168.1.250 EX_APISERVER_PORT=8443
 
# [optional] ntp server for the cluster
[chrony]
#192.168.1.1
 
[all:vars]
# --------- Main Variables ---------------
# Secure port for apiservers
SECURE_PORT="6443"
 
# Cluster container-runtime supported: docker, containerd
# if k8s version >= 1.24, docker is not supported
CONTAINER_RUNTIME="containerd"
 
# Network plugins supported: calico, flannel, kube-router, cilium, kube-ovn
CLUSTER_NETWORK="calico"
 
# Service proxy mode of kube-proxy: 'iptables' or 'ipvs'
PROXY_MODE="ipvs"
 
# K8S Service CIDR, not overlap with node(host) networking
SERVICE_CIDR="10.68.0.0/16"
 
# Cluster CIDR (Pod CIDR), not overlap with node(host) networking
CLUSTER_CIDR="10.20.0.0/16"
 
# NodePort Range
NODE_PORT_RANGE="30000-32767"
 
# Cluster DNS Domain
CLUSTER_DNS_DOMAIN="cluster.local"
 
# -------- Additional Variables (don't change the default value right now) ---
# Binaries Directory
bin_dir="/opt/kube/bin"
 
# Deploy Directory (kubeasz workspace)
base_dir="/etc/kubeasz"
 
# Directory for a specific cluster
cluster_dir="{{ base_dir }}/clusters/k8s-01"
 
# CA and other components cert/key Directory
ca_dir="/etc/kubernetes/ssl"
 
# Default 'k8s_nodename' is empty
k8s_nodename=''

  4、安装集群

# 一键安装
docker exec -it kubeasz ezctl setup k8s-01 all

参考:

https://github.com/easzlab/kubeasz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubeasz是一个基于Ansible的Kubernetes部署工具,可以帮助用户快速部署一个高可用的Kubernetes集群。如果要离线部署K8S集群,可以按照以下步骤进行操作: 1.下载Kubeasz离线包 首先需要从Kubeasz官网下载离线包。将离线包解压到需要安装Kubernetes的机器上。 2.安装Ansible Kubeasz是基于Ansible的,因此需要安装Ansible。可以在安装Kubeasz之前或者在安装Kubeasz的过程中安装Ansible。 3.配置Ansible 在安装Kubeasz之前,需要在Ansible的配置文件中设置好需要安装Kubernetes的机器的IP地址和用户名等信息。可以在解压后的Kubeasz离线包中找到ansible.cfg文件进行配置。 4.安装Docker Kubernetes必须使用Docker作为容器运行时。因此,在安装Kubernetes之前,需要安装Docker。可以在Kubeasz离线包中找到docker-install.sh脚本进行安装。 5.安装Kubernetes 在安装好Docker之后,就可以开始安装Kubernetes了。可以在Kubeasz离线包中找到kubernetes-install.yml文件进行安装。 6.安装Kubernetes Dashboard Kubernetes Dashboard是Kubernetes的Web管理界面,可以方便地管理Kubernetes集群。可以在Kubeasz离线包中找到dashboard-install.yml文件进行安装。 7.验证Kubernetes集群 安装完成后,可以使用kubectl命令验证Kubernetes集群是否正常运行。可以使用以下命令查看Kubernetes集群的节点信息: kubectl get nodes 如果输出的结果中显示所有节点都处于Ready状态,则说明Kubernetes集群已经成功部署。 以上就是使用Kubeasz离线部署K8S集群的步骤。需要注意的是,在离线环境下部署Kubernetes需要提前准备好所有的安装包和依赖项,并确保安装过程中没有网络访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值