1.搭建虚拟机

本地搭建了一台虚拟机 8G 8线程的虚拟机

在这里插入图片描述
在这里插入图片描述

然后跟着官网的文档走,

# 安装 git 命令行
sudo yum install git -y
# 克隆本项目代码
git clone https://github.com/open-hand/kubeadm-ha.git
# 进入项目目录
cd kubeadm-ha
# 安装 ansible 环境
sudo ./install-ansible.sh

配置 ansible inventory 文件

项目 example 文件夹下提供了 6 个 ansible inventory 示例文件,请按需求进行选择并修改。
拷贝项目下的 example/hosts.m-master.ip.ini 文件至项目根目录下,命名为 inventory.ini,修改各服务器的 IP 地址、用户名、密码,并维护好各服务器与角色的关系。
在这里由于我们搭建的是单节点的机器 ,所以拷贝的是下面的文件到根目录进行修改
在这里插入图片描述

; 将所有节点的信息在这里填写
;    第一个字段                  为节点内网IP,部署完成后为 kubernetes 节点 nodeName
;    第二个字段 ansible_port     为节点 sshd 监听端口
;    第三个字段 ansible_user     为节点远程登录用户名
;    第四个字段 ansible_ssh_pass 为节点远程登录用户密码
[all]
192.168.180.132 ansible_port=22 ansible_user="root" ansible_ssh_pass="root"

; 单节点lb节点组留空。
[lb]

; 注意etcd集群必须是1,3,5,7...奇数个节点
[etcd]
192.168.180.132

[kube-master]
192.168.180.132

[kube-worker]
192.168.180.132

; 预留组,后续添加master节点使用
[new-master]

; 预留组,后续添加worker节点使用
[new-worker]

; 预留组,后续添加etcd节点使用
[new-etcd]

; 预留组,后续删除worker角色使用
[del-worker]

; 预留组,后续删除master角色使用
[del-master]

; 预留组,后续删除etcd角色使用
[del-etcd]

; 预留组,后续删除节点使用
[del-node]

;-------------------------------------- 以下为基础信息配置 ------------------------------------;
[all:vars]
; 是否跳过节点物理资源校验,Master节点要求2c2g以上,Worker节点要求2c4g以上
skip_verify_node=false
; kubernetes版本
kube_version="1.19.4"
; 负载均衡器
;   有 nginx、openresty、haproxy、envoy  和 slb 可选,默认使用 nginx
;   为什么单节点 apiserver 也使用了负载均衡请参与此讨论: https://github.com/TimeBye/kubeadm-ha/issues/8
lb_mode="nginx"
; 使用负载均衡后集群 apiserver port
lb_kube_apiserver_port="8443"

; 网段选择:pod 和 service 的网段不能与服务器网段重叠,
; 若有重叠请配置 `kube_pod_subnet` 和 `kube_service_subnet` 变量设置 pod 和 service 的网段,示例参考:
;    如果服务器网段为:10.0.0.1/8
;       pod 网段可设置为:192.168.0.0/18
;       service 网段可设置为 192.168.64.0/18
;    如果服务器网段为:172.16.0.1/12
;       pod 网段可设置为:10.244.0.0/18
;       service 网段可设置为 10.244.64.0/18
;    如果服务器网段为:192.168.0.1/16
;       pod 网段可设置为:10.244.0.0/18
;       service 网段可设置为 10.244.64.0/18
; 集群pod ip段,默认掩码位 18 即 16384 个ip
kube_pod_subnet="10.244.0.0/18"
; 集群service ip段
kube_service_subnet="10.244.64.0/18"
; 分配给节点的 pod 子网掩码位,默认为 24 即 256 个ip,故使用这些默认值可以纳管 16384/256=64 个节点。
kube_network_node_prefix="24"

; node节点最大 pod 数。数量与分配给节点的 pod 子网有关,ip 数应大于 pod 数。
; https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr
kube_max_pods="110"

; 集群网络插件,目前支持flannel,calico
network_plugin="calico"

; 若服务器磁盘分为系统盘与数据盘,请修改以下路径至数据盘自定义的目录。
; Kubelet 根目录
kubelet_root_dir="/var/lib/kubelet"
; docker容器存储目录
docker_storage_dir="/var/lib/docker"
; Etcd 数据根目录
etcd_data_dir="/var/lib/etcd"

然后就是在根目录下执行命令安装:
ansible-playbook -i inventory.ini 90-init-cluster.yml

然后进入漫无边际的等待
大概过了十分钟
得到如下结果 显示安装成功:
在这里插入图片描述
验证命令:
在这里插入图片描述

安装helm

curl -L -o helm-v3.2.4-linux-amd64.tar.gz https://file.choerodon.com.cn/kubernetes-helm/v3.2.4/helm-v3.2.4-linux-amd64.tar.gz

在这里插入图片描述

NFS动态存储卷

改配置
在这里插入图片描述

安装:
在这里插入图片描述

验证:

在这里插入图片描述
有时候打开虚拟机黑屏 用这个办法解决:
http://www.lotpc.com/dngz/8191.html

安装集群失败了:
在这里插入图片描述

在这里插入图片描述

执行了重置的命令依然安装失败,虚拟机抽风了 重新安装了一遍

下面测试这个集群能否部署服务
OK没有问题

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐