Kubernetes(8)-使用ansible自动化部署Kubernetes

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

使用 kubeasz 部署 Kubernetes 集群,kubeasz 项目地址

服务器列表:

IP 主机名 角色
192.168.100.142 kube-master1,kube-master1.suosuoli.cn K8s 集群主节点 1
192.168.100.144 kube-master2,kube-master2.suosuoli.cn K8s 集群主节点 2
192.168.100.146 kube-master3,kube-master3.suosuoli.cn K8s 集群主节点 3
192.168.100.160 node1,node1.suosuoli.cn K8s 集群工作节点 1
192.168.100.162 node2,node2.suosuoli.cn K8s 集群工作节点 2
192.168.100.164 node3,node3.suosuoli.cn K8s 集群工作节点 3
192.168.100.164 etcd-node1,etcd-node1.suosuoli.cn 集群状态存储 etcd
192.168.100.150 ha1,ha1.suosuoli.cn K8s 主节点访问入口 1(高可用及负载均衡)
192.168.100.152 ha2,ha2.suosuoli.cn K8s 主节点访问入口 1(高可用及负载均衡)
192.168.100.154 harbor,harbor.suosuoli.cn 容器镜像仓库
192.168.100.200 VIP

一. 各主机环境准备

~# apt update
~# apt install python2.7
~# ln -sv /usr/bin/python2.7 /usr/bin/python

二. 管理端安装 Ansible

2.1 安装

root@kube-master1:~# apt install ansible

2.2 Ansible 服务器基于 Key 与被控主机通讯

root@kube-master1:~# cat batch-copyid.sh
#!/bin/bash
#
# simple script to batch diliver pubkey to some hosts.
#
IP_LIST="
192.168.100.142
192.168.100.144
192.168.100.146
192.168.100.160
192.168.100.162
192.168.100.164
192.168.100.166
"

for host in ${IP_LIST}; do
    sshpass -p stevenux ssh-copy-id ${host} -o StrictHostKeyChecking=no
    if [ $? -eq 0 ]; then
        echo "copy pubkey to ${host} done."
    else
        echo "copy pubkey to ${host} failed."
    fi
done

三. 下载部署 Kubernetes 集群所需的文件

下载部署 Kubernetes 集群所需的二进制文件及 ansible playbook 和 roles,参考
集群部署前的准备

root@kube-master1:/etc/ansible# curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/2.2.0/easzup
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   597  100   597    0     0    447      0  0:00:01  0:00:01 --:--:--   447
100 12965  100 12965    0     0   4553      0  0:00:02  0:00:02 --:--:-- 30942
root@kube-master1:/etc/ansible# ls
ansible.cfg  easzup  hosts

root@kube-master1:/etc/ansible# chmode +x easzup

# 开始下载
root@kube-master1:/etc/ansible# ./easzup -D
[INFO] Action begin : download_all
[INFO] downloading docker binaries 19.03.5
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 60.3M  100 60.3M    0     0  1160k      0  0:00:53  0:00:53 --:--:-- 1111k
[INFO] generate docker service file
[INFO] generate docker config file
[INFO] prepare register mirror for CN
[INFO] enable and start docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
Failed to enable unit: Unit file /etc/systemd/system/docker.service is masked.
Failed to restart docker.service: Unit docker.service is masked.  # 出错,提示docker.service masked
[ERROR] Action failed : download_all   # 下载失败

# 尝试unmask,但是service文件被删除了?
root@kube-master1:/etc/ansible# systemctl unmask docker.service
Removed /etc/systemd/system/docker.service.

# 打开easzup脚本,将其生成docker.service文件的内容拷贝,自己写docker.service文件
root@kube-master1:/etc/ansible# vim easzup
...
 echo "[INFO] generate docker service file"
  cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
[Service]
Environment="PATH=/opt/kube/bin:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart=/opt/kube/bin/dockerd
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
ExecReload=/bin/kill -s HUP \$MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
...

# 编写docker.service启动文件
root@kube-master1:/etc/ansible# vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
[Service]
Environment="PATH=/op
从在线到离线:基于openEuler SP4的Kubernetes 1.26部署包制作全流程指南 本文详细介绍了基于openEuler SP4的Kubernetes 1.26离线部署包制作全流程,涵盖系统依赖包采集、容器运行时配置、核心组件打包及网络插件处理等关键步骤。针对金融、军工等敏感行业的网络隔离需求,提供从在线资源采集到离线包组装的完整解决方案,显著提升部署效率与安全性。 阅读详情

相关推荐

Ubuntu 22.04 Docker安装笔记

Docker是一个开源的软件平台,它允许你通过容器化技术来构建、测试和运行应用程序。容器化是一种轻量级、可移植的、自给自足的软件运行方式,它使得应用程序及其依赖项可以被打包在一起,从而简化了软件的部署和管理。Docker为Ubuntu提供了一个官方的APT仓库,这使得在Ubuntu系统上安装Docker变得非常简单。执行这个命令后,Docker 的官方软件源将被添加到您的系统软件源列表中,APT 将能够从这个源安装 Docker。使用docker exec进入容器,如果从这个容器退出,容器不会停止。

zkyqss的博客 1915

Systemd:Unit配置文件

Systemd是Linux的核心守护进程,其功能十分强大,可以管理多种类型的资源,每种资源被称为一个systemd unit,每个unit都需要一个配置文件,该文件的后缀名与资源是一致的。注:Target可以认为是一组Unit,启动某个 Target 的时候,Systemd 就会启动里面所有的 Unit,也是一个通用区块,配置的目标模块通常是特定运行目标的 .target 文件,用来使得服务在系统启动时自动运行。注3:Requires属于强依赖,如果依赖项启动失败或异常退出,那么本Unit也无法启动。

风静如云的博客 477

阿里云ECS - Ubuntu 安装Postgresql

在Ubuntu安装Postgresql的几个步骤和注意事项

m0_61786975的博客 1524

WSL ubuntu使用systemctl命令报错,解决办法

1、在命令窗口执行wsl -l -v查看wsl的版本,如果不是2需要先更新wsl --update。3、关闭wsl窗口,在命令窗口执行wsl --shutdown将wsl关闭。4、重新打开wsl窗口,现在systemctl命令就可以使用了。今天在wsl执行systemctl报以下错,百度找了下解决办法,亲测可行。

懒 虫的博客 8689

ubuntu18.04安装docker

https://blog.csdn.net/u010889616/article/details/80170767 我尝试的第一个apt安装。第一次没有修改apt安装源,下载巨慢,然后改成阿里源。 1、从仓库安装 sudo apt install docker.io 2、启用查看 test@test:~$ sudo systemctl start docker test@test:~$ sudo ...

weixin_43570089的博客 1618

使用Ansible在Raspberry Pi上搭建Kubernetes集群——rak8s项目推荐

使用Ansible在Raspberry Pi上搭建Kubernetes集群——rak8s项目推荐 Raspberry Pi作为一种低成本、高性能的计算平台,在开源技术爱好者中广受欢迎。结合了强大的Ansible自动化工具,Chris Short发起的rak8s项目使得在Raspberry Pi上搭建Kubernetes集群变得简单易行。以下是该项目的基础介绍及推荐内容。 1. 项目基础介绍和主要编...

gitblog_00588的博客 526

Dockerfile与Ansible实战指南

本文介绍了如何编写一个基于Alpine Linux的Dockerfile并验证文件是否成功复制到容器中,同时涵盖LXD配置文件的创建与使用Ansible的安装与权限配置、以及使用Ansible Playbook部署Apache服务并管理Kubernetes应用。内容还包括容器镜像导出、服务暴露、扩展部署等操作步骤。

whisky的博客 435

为什么选择Raspberry Pi Dramble?树莓派集群运行Drupal的5大优势

Raspberry Pi Dramble是一个基于树莓派构建的Kubernetes集群项目,专门用于运行高可用/高性能的Drupal 8网站。通过AnsibleKubernetes技术,这个小型但功能强大的集群展示了如何在低成本硬件上实现企业级应用部署。 [![Raspberry Pi Dramble集群硬件展示](https://raw.gitcode.com/gh_mirrors/ra/r

gitblog_01085的博客 1033

Ansible自动化部署Kubernetes

由于经常要部署k8s集群,不想在重复的事情上浪费时间了,我写了一个ansible自动部署Kubernetes集群的项目,这个项目目前只支持单主节点的自动部署,操作系统版本为Ubuntu(Jammy)。不支持部署高可用多master节点,毕竟是个人用的,没有考虑这么多。如果必须高可用可以考虑rke,sealos,kubespray等方案。什么?你问为什么单节点也能用rke,sealos,kubespray等方案,为什么要自己写playbook?

weixin_74812406的博客 686

LXD配置与Ansible自动化实战

本文介绍了如何基于默认配置创建LXD新配置文件并安装Apache服务,通过Ansible playbook实现自动化部署与管理。内容涵盖LXD镜像导出、Ansible权限配置、playbook编写与检查模式运行,以及使用MicroK8s部署和扩展Kubernetes应用,最后通过kubectl命令暴露服务并进行访问测试。

pea55的博客 1020

基于Raspberry Pi的Kubernetes集群部署常见问题解决方案

基于Raspberry Pi的Kubernetes集群部署常见问题解决方案 项目基础介绍 本项目是一个开源项目,旨在通过Ansible自动化工具在Raspberry Pi上搭建一个Kubernetes集群。项目名为rak8s(发音为/rækɪts/),由Chris Short以及一群开源社区的贡献者共同维护。项目使用的主要编程语言是Python,以及Ansible的配置管理语言。 新手常见问题及解...

gitblog_00306的博客 297

推荐文章:TK8 - 打造您的多云、多集群Kubernetes管理利器

推荐文章:TK8 - 打造您的多云、多集群Kubernetes管理利器 项目介绍 TK8,一个由Go语言编写的命令行工具,为云原生爱好者带来了一场革命。它旨在通过全面自动化的方式安装和配置Kubernetes,无论您的环境如何。想象一下,通过单一的控制面板,您就能够无缝地管理分布在不同云服务提供商上的多个Kubernetes集群,这正是TK8的魅力所在。此外,其独特的插件系统使得集成各类扩展变得轻...

gitblog_01104的博客 894

ansible安装K8s

【代码】ansible安装K8s。

weixin_45631123的博客 449

rak8s - 探索Raspberry Pi上的Kubernetes集群

rak8s - 探索Raspberry Pi上的Kubernetes集群 rak8s(发音为 "rackets")是基于Ansible的项目,旨在帮助你在Raspberry Pi设备上快速搭建一个Kubernetes集群。由Chris Short维护并由开放源码社区共同贡献,rak8s提供了一个简单且经济实惠的方式来体验在ARM架构下运行Kubernetes的魅力。 为什么选择...

gitblog_00034的博客 398

ansibe私有化部署k8s1.19.1

本文采用centos8.2环境根据bclinux与阿里云过期centos8.2源手动下载保存的rpm包测试的自动化部署方案,请慎用!请慎用!请慎用!此文也是为了方便复制粘贴配置所写注意:请根据自己的环境进行验证在修改。

weixin_50763319的博客 474

kubeasz最新发布:支持Kubernetes 1.34版本的高可用集群部署方案

你是否还在为Kubernetes集群部署的复杂性而困扰?是否希望以最小的成本实现生产级高可用架构?kubeasz 3.6.8版本正式发布,带来对Kubernetes 1.34的全面支持,通过Ansible自动化部署流程和优化的高可用架构设计,让企业级K8s集群部署变得简单可控。本文将详细介绍这一版本的核心特性、部署流程及最佳实践,帮助运维团队快速掌握新一代容器编排平台的搭建方法。 ## 核心组件...

gitblog_00328的博客 526

8分钟快速搭建Kubernetes测试环境:kubeasz AllinOne完整实践指南

还在为复杂的Kubernetes部署流程而头疼吗?想要一个快速可用的测试环境却苦于繁琐的配置步骤?kubeasz作为一款基于AnsibleKubernetes部署工具,通过AllinOne模式让你在8分钟内完成从零到有的集群搭建。本文将从实际问题出发,带你体验极速部署的完整流程。 ## 部署前的环境挑战 传统Kubernetes部署面临诸多痛点:多节点配置复杂、网络插件选择困难、证书管理繁琐

gitblog_00787的博客 892

kubernetes可视化搭建集群,web界面一键操作

ku8eye web 开发环境当前版本的 ku8eye web开发环境 以docker镜像方式提供,下载地址为: http://pan.baidu.com/s/1gdYk4CV安装部署的架构图如下图所示。注:运行ku8eye-web开发环境的服务器应在待安装Kubernetes集群的服务器范围之外,并能够与待安装服务器网络连通。文件名为:ku8eye-web.tar.gz 用gunzip解压缩后,...

u010955999的博客 1万+

别再手动敲命令了!用Ansible自动化部署iSCSI存储(CentOS 7/8实战)

本文详细介绍了如何使用Ansible自动化部署iSCSI存储集群,特别针对CentOS 7/8环境提供生产验证的解决方案。通过Ansible Playbook实现从服务端target配置到客户端自动挂载的完整流程,大幅提升数据中心运维效率,避免传统手工操作带来的配置不一致问题。

weixin_30460489的博客 350
上一篇: Kubernetes(7)-管理Pod对象
下一篇: CICD(9)-Gitlab&Jenkins自动化部署项目案例
stevenux
博客等级 码龄9年 75粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值