本地搭建K8S集群(单节点)
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配置
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没有问题
更多推荐
所有评论(0)