JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Ansible搭建高可用K8s ansible core

wys521 2024-10-08 12:18:45 精选教程 28 ℃ 0 评论

K8s集群安装

首先要修改虚机的hostname,(为了去掉后缀.novalocal)

节点信息

ip

hostname

os

role

192.168.110.3(控制端)

gyp-ansible

Centos7

worker

192.168.110.4

gyp-master1

Centos7

master

192.168.110.8

gyp-master2

Centos7

master

192.168.110.16

gyp-master3

Centos7

master

192.168.110.15

gyp-worker

Centos7

worker

控制端安装Ansible运行环境

控制端,不可以作为master节点使用,但是可以是worker节点

  • 配置yum源(这一步每台虚机都要操作)
  • sudo yum install ansible -y #安装ansible
  • sudo vi /etc/ansible/hosts #以下是我针对自己的节点信息所进行的配置

# Ex 2: A collection of hosts belonging to the 'webservers' group

# 输入你的虚机IP

[webservers]

192.168.110.3

192.168.110.5

192.168.110.11

192.168.110.12

# 配置虚机用户,我这里用户为centos

[webservers:vars] # 设置该组的参数

ansible_ssh_user='centos'

  • sudo vi /etc/ansible/ansible.cfg # ansible的配置文件

# 进去之后 寻找private

:/private_key

# 找到对应的地方 按a键进行编辑

# 去掉注释

# 私钥的路径:根据自己所放位置,修改路径

private_key_file = /home/centos/k3s.pem

  • 把私钥文件放到某个路径下,这里我选择的路径是/home/centos
  • 修改几个文件的权限
    • sudo chmod 600 k3s.pem
  • 测试ansible是否安装成功:
    • ansible all -m shell -a "hostname" #引号内输入你要执行的命令,这里我以“hostname”命令为例
    • 运行该命令,直到每台机器都成功输出hostname


到这里,安装ansible成功!(如果遇到除控制端外的其他主机都没有报错,可以将控制端这台主机清理,再次安装)


部署集群

Github开源的kubeadm-ha项目

http://github.com/TimeBye/kubeadm-ha

  1. 下载该.zip文件,然后解压,将解压后的文件 ----> 复制到控制端的那台虚机上(这里我复制进去的文件夹名为kubeadm-ha,复制到的路径我选择的是/home/centos)。

集群规划------>选择你所搭建的集群样式

  1. 我所搭建的集群为
    1. 多主多节点
    2. 样式二 所以我选择

hosts.m-master.hostname

    1. 在控制端主机中,切换到指定目录下,修改hosts.m-master.hostname.ini文件
    2. cd /home/centos/kubeadm-ha/example
    3. sudo vi host.m-master.hostname.ini

# 根据你的集群情况填写

[all]

k8s-master1 ansible_host=192.168.110.3 ansible_user=centos

k8s-master2 ansible_host=192.168.110.5 ansible_user=centos

k8s-master3 ansible_host=192.168.110.11 ansible_user=centos

k8s-worker ansible_host=192.168.110.12 ansible_user=centos

; 私有云:

; VIP 负载模式:

; 也就是负载均衡器 + keepalived 模式,比如常用的 haproxy + keepalived。

; 本脚本中负载均衡器有 nginx、haproxy、envoy 可供选择,设置 lb_mode 即可进行任意切换。

; 设置 lb_kube_apiserver_ip 即表示启用 keepalived,请先与服务器提供部门协商保留一个IP作为 lb_kube_apiserver_ip,

; 一般 lb 节点组中有两个节点就够了,lb节点组中第一个节点为 keepalived 的 master 节点,剩下的都为 backed 节点。

;

; 节点本地负载模式:

; 只启动负载均衡器,不启用 keepalived(即不设置 lb_kube_apiserver_ip),

; 此时 kubelet 链接 apiserver 地址为 127.0.0.1:lb_kube_apiserver_port。

; 使用此模式时请将 lb 节点组置空。

;

; 公有云:

; 不推荐使用 slb 模式,建议直接使用节点本地负载模式。

; 若使用 slb 模式,请先使用节点本地负载模式进行部署,

; 部署成功后再切换至 slb 模式:

; 将 lb_mode 修改为 slb,将 lb_kube_apiserver_ip 设置为购买到的 slb 内网ip,

; 修改 lb_kube_apiserver_port 为 slb 监听端口。

; 再次运行初始化集群脚本即可切换至 slb 模式。

[lb]

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

[etcd]

k8s-master1

k8s-master2

k8s-master3

[kube-master]

k8s-master1

k8s-master2

k8s-master3

[kube-worker]

k8s-worker


6. sudo vi ansible.cfg

# 进去之后 寻找private

:/private_key

# 找到对应的地方 按a键进行编辑

# 去掉注释

# 私钥的路径:根据自己所放位置,修改路径

private_key_file = /home/centos/k3s.pem

4. 修改我们拷贝进来的文件夹中的几个文件,要不然执行5时,

        • sudo vi roles/prepare/docker/default/main.yml
  • 执行第五步,ansible-playbook -i example/hosts.m-master.hostname.ini 90-init-cluster.yml
        • 上述复制可能有问题,你就删除90-init-cluster.yml自己在手动输入虚机一次,问题就解决了

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表