Devops7实验环境搭建(terraform-kind-k8s-argocd)

news2025/2/4 15:59:42

Devops7实验环境搭建(terraform-kind-k8s-argocd)

image-20230712071158183

目录

image-20230717065916496

实验环境

操作系统: CentOS8 Linux (我本次用centos7.6)
内存资源:32GB+ (自己nuc机器32G内存)

实验软件版本:

工具名称Version描述信息
Terraform1.1.7使用kind provider操作kind
Kind0.14.0创建Kubernetes集群工具
Docker-CE1.19+以上 (Docker version 23.0.3, build 3e7cbfd)容器运行时
kubectlversion.Info{Major:“1”, Minor:“24”, GitVersion:"v1.24.0
Kubernetes1.24.0容器云环境
ArgoCD2.6.7云原生应用持续部署工具
NFS存储系统,持久化存储容器数据

image-20230715223415414

实验软件

链接:https://pan.baidu.com/s/1RgZJ9_Mu2pPLZ71gm_ew_A?pwd=0820
提取码:0820
2023.7.16-搭建devops7测试环境-code

image-20230716113343386

  • 本次涉及docker镜像打包

image-20230716112215049

0、创建自己的基础设施代码库

gitlab代码库

  • 老师代码库:

https://jihulab.com/devopsvip/myiac
https://jihulab.com/devops_course/argocd-example-apps.git

image-20230715223812452

image-20230715223912820

  • 自己的极狐仓库地址(这个是后续要用到的代码已经上传到自己的极狐仓库了)

Iac仓库:https://jihulab.com/learndevops/myiac.git
ArgoCD应用demo仓库:https://jihulab.com/learndevops/argocd-example-apps.git

image-20230716132058682

image-20230716132111487

1、安装docker

  • 完整代码:
#以下命令可一键粘贴执行!

systemctl stop firewalld
systemctl disable  firewalld
systemctl stop NetworkManager
systemctl disable  NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config

cd /etc/yum.repos.d/
mkdir backup-`date +%F`
mv * !$

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

yum install -y net-tools
yum install -y vim
yum install -y wget
yum install -y lrzsz

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

yum install -y yum install docker-ce-23.0.3 docker-ce-cli-23.0.3 containerd.io #指定需要安装的版本号
systemctl start docker && systemctl enable docker

docker version
docker info

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors":["https://kvuwuws2.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://dockerhub.azk8s.cn"]
}
EOF

cat /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
sysctl -p
cat /proc/sys/net/ipv4/ip_forward

systemctl daemon-reload
systemctl restart docker

验证效果:

[root@devops7 ~]#docker version
Client: Docker Engine - Community
 Version:           23.0.3
 API version:       1.42
 Go version:        go1.19.7
 Git commit:        3e7cbfd
 Built:             Tue Apr  4 22:04:18 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.3
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.19.7
  Git commit:       59118bf
  Built:            Tue Apr  4 22:02:01 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@devops7 ~]#
  • 参考链接

https://www.yuque.com/xyy-onlyone/exkgza/nafa6w?singleDoc# 《31 实战-centos上安装docker(超详细)-2021912》

image-20230716073728381

2、安装Kind

安装Kubectl

##1、下载
[root@devops7 ~]#curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   138  100   138    0     0    119      0  0:00:01  0:00:01 --:--:--   120
100 46.9M  100 46.9M    0     0  9869k      0  0:00:04  0:00:04 --:--:-- 13.4M
[root@devops7 ~]#ll -h
total 47M
-rw-r--r-- 1 root root 47M Jul 16 07:48 kubectl

##2、安装
[root@devops7 ~]#sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

##3、查看
[root@devops7 ~]#kubectl version  --client
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.3", GitCommit:"25b4e43193bcda6c7328a6d147b1fb73a33f1598", GitTreeState:"clean", BuildDate:"2023-06-14T09:53:42Z", GoVersion:"go1.20.5", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v5.0.1
[root@devops7 ~]#

##4、kubectl的自动补全
#安装软件包
yum install -y epel-release bash-completion

#执行命令
source /usr/share/bash-completion/bash_completion

source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

安装Kind

[root@devops7 ~]# wget https://github.com/kubernetes-sigs/kind/releases/download/v0.14.0/kind-linux-amd64
#这里直接wget可能下载失败,需要使用科学上网哦。我这里提供了安装包。

[root@devops7 ~]#chmod +x kind-linux-amd64
[root@devops7 ~]#sudo mv kind-linux-amd64 /usr/local/bin/kind

# 验证版本
[root@devops7 ~]#kind version
kind v0.14.0 go1.18.2 linux/amd64
  • 参考链接

https://www.yuque.com/xyy-onlyone/exkgza/eocq7i3537zrr7xe?singleDoc# 《192 实战:Kind部署k8s集群-2022.12.6(成功测试)》

image-20230716132432633

安装Terraform

(1)上传下载好的二进制包到服务器
[root@devops7 ~]#ll -h terraform_1.1.9_linux_amd64.zip 
-rw-r--r-- 1 root root 18M Apr 12 19:59 terraform_1.1.9_linux_amd64.zip
[root@devops7 ~]#unzip terraform_1.1.9_linux_amd64.zip 
Archive:  terraform_1.1.9_linux_amd64.zip
  inflating: terraform
[root@devops7 ~]#ll -h terraform
-rwxr-xr-x 1 root root 62M Apr 20  2022 terraform

(2)移动二进制文件到PATH路径
[root@devops7 ~]#mv terraform /usr/local/bin/

(3)验证
[root@devops7 ~]#terraform version
Terraform v1.1.9
on linux_amd64  

3、部署Kuberenetes集群

提前拉取好镜像

#备注:
kindest/node:v1.24.0
这2个镜像得拉取下来才行:得从阿里云拉取下来,再重新打上tag

k8s.gcr.io/ingress-nginx/controller:v1.2.0
k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
docker pull kindest/node:v1.24.0

通过ucloud拉取,并重新打上tag:

image-20230716093742781

已拉取好镜像:

[root@devops7 ~]#docker images
REPOSITORY                                      TAG       IMAGE ID       CREATED         SIZE
kindest/node                                    v1.24.0   a7d31d743aca   13 months ago   911MB
kindest/node                                    <none>    f5aa68ba122a   14 months ago   911MB
k8s.gcr.io/ingress-nginx/controller             v1.2.0    04fcc7019408   15 months ago   288MB
k8s.gcr.io/ingress-nginx/kube-webhook-certgen   v1.1.1    c41e9fcadf5a   21 months ago   47.7MB
  • 如何拉取国外镜像,请看如下链接

https://www.yuque.com/xyy-onlyone/exkgza/on4ku7?singleDoc# 《110 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1》

image-20230716132653341

Terraform安装k8s集群

  • 安装过程如下

插件安装失败:

image-20230716094643127

再安装一次就好了……

image-20230716095611848

terradorm插件缓存目录:

image-20230716101741783

image-20230716101934426

  • 部署k8s集群

Terraform初始化和发布

# install
cd k8s 
terraform init 
terraform apply --auto-approve

# uninstall
terraform destroy --auto-approve

等待Terraform发布成功后,检查集群状态。

[root@devops7 k8s]#kubectl get node
NAME                          STATUS   ROLES           AGE   VERSION
devopscluster-control-plane   Ready    control-plane   16m   v1.24.0
devopscluster-worker          Ready    <none>          16m   v1.24.0
devopscluster-worker2         Ready    <none>          16m   v1.24.0

ingress-nginx

[root@devops7 k8s]#kubectl get pod -n ingress-nginx
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-h65sd        0/1     Completed   0          15m
ingress-nginx-admission-patch-rnc4f         0/1     Completed   0          15m
ingress-nginx-controller-59c96b9cb7-cv9nw   1/1     Running     0          15m

image-20230716102224861

集群部署成功。

4、部署ArgoCD

部署ArgoCD

image-20230716103258752

  • 提前拉取镜像
# # GetDockerImage
docker pull ccr.ccs.tencentyun.com/argocds/dex:v2.35.3
docker pull ccr.ccs.tencentyun.com/argocds/redis:7.0.8-alpine
docker pull ccr.ccs.tencentyun.com/argocds/argocd:v2.6.7

# # TagDockerImage
docker tag ccr.ccs.tencentyun.com/argocds/dex:v2.35.3 ghcr.io/dexidp/dex:v2.35.3 
docker tag ccr.ccs.tencentyun.com/argocds/argocd:v2.6.7 quay.io/argoproj/argocd:v2.6.7 
docker tag ccr.ccs.tencentyun.com/argocds/redis:7.0.8-alpine redis:7.0.8-alpine 
  • 执行脚本
[root@devops7 argocd]#sh run.sh

查看状态:

image-20230716103448755

  • 配置自己pc hosts,映射域名
172.29.9.130 argocd.idevops.site

image-20230716103352232

  • 登录argocd

https://argocd.idevops.site/

image-20230716103058391

image-20230716103109168

  • 修改密码

admin/Admin@123

image-20230716103207618

部署argocd应用

  • 执行
[root@devops7 argocd-testapp]#ls
testapp.yaml
[root@devops7 argocd-testapp]#kubectl apply -f testapp.yaml 
application.argoproj.io/directory-guestbook created
[root@devops7 argocd-testapp]#
  • 点击SYNC

image-20230716103835623

image-20230716103857788

image-20230716103944320

  • 观察状态

image-20230716104221331

image-20230716104152164

  • 删除argocd应用

image-20230716104914361

image-20230716104934981

删除成功:

image-20230716104951698

image-20230716105038732

  • 我们将argocd应用的代码仓库换成自己的极狐地址,再次部署,观察现象

image-20230716105144477

[root@devops7 argocd-testapp]#kubectl apply -f testapp.yaml 
application.argoproj.io/directory-guestbook created

可正常部署应用:

image-20230716105304982

image-20230716105325457

以上,本次的测试环境已搭建成功。😘

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码
x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号
《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230624093747671

🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎
https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20230717063425902

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【正点原子STM32连载】第五十八章 T9拼音输入法实验摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第五…

Kubernetes - HPA-VPA - metrics介绍和安装 - HPA实验

目录 参考文章&#xff1a;(97条消息) Kubernetes-自动扩展器HPA、VPA、CA_hpa vpa_SRE运维充电站的博客-CSDN博客 HPA VPA 官方网址&#xff1a;autoscaler/vertical-pod-autoscaler at master kubernetes/autoscaler GitHub HPA和VPA进行扩缩容的区别&#xff1a; me…

绿水青山,节水护水我先行

为了树立人人珍惜水&#xff0c;人人节约水的良好风尚 绿萝志愿团队在7月16日在常庄刺猬河开展了2023年卫生环保志愿活动主要项目是宣传节水&#xff0c;护水志愿活动。 早上志愿者们早早的来到刺猬河旁&#xff0c;用自己带的工具准备清理河道旁的垃圾。志愿者们顶着炎炎的烈日…

Servlet 开发技术

文章目录 前言创建Servlet项目处理请求并响应处理请求text/plain&#xff0c;纯文本text/html&#xff0c;html代码application/json&#xff0c;JSON格式字符串 Servlet 生命周期Servlet在整个生命周期中被调用的方法Servlet运行原理 CORS跨域设置 前言 提示&#xff1a;这里…

rust的cargo和基本数据类型

一、cargo 1、cargo 比较大的项目就不适合用rustc进行编译了&#xff0c;此时就需要使用cargo 在安装包的时候&#xff0c;会遇到网速慢卡住的问题&#xff0c;这时候就要更换国内源或者设置代理 方法一&#xff1a;设置命令行代理 方法二&#xff1a;换源 进入用户目录下的…

linux 安装redis、配置密码及简单使用

1&#xff1a;官网下载压缩包 这里我下载的是6.2.13版本。 2&#xff1a;上传到linux服务器 a:创建redis文件夹 b:进入当前redis文件夹 c:解压缩文件 d:进入 redis-6.2.713 e:使用make 命令进行编译将.c文件编译成.o文件 编译成功之后会出现“Its a good idea to run make test…

微信原生实现一个简易的图片上传功能

一、实现原理 wx.showActionSheet()&#xff1a;显示操作菜单&#xff0c;选择是从相册选择还是相机拍摄照片wx.chooseImage()&#xff1a;从本地相册选择图片或使用相机拍照。wx.uploadFile()&#xff1a;将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求&#xff0c…

在自定义数据集上微调Alpaca和LLaMA

本文将介绍使用LoRa在本地机器上微调Alpaca和LLaMA&#xff0c;我们将介绍在特定数据集上对Alpaca LoRa进行微调的整个过程&#xff0c;本文将涵盖数据处理、模型训练和使用流行的自然语言处理库(如Transformers和hugs Face)进行评估。此外还将介绍如何使用grado应用程序部署和…

分型(一)

一点想法&#xff1a; 坐标系本来就是人头脑当中的东西&#xff0c;可以根据需要动态调整&#xff0c;图像处理中&#xff0c;用动态的波看静态的图像&#xff0c;进而找出图像的特征&#xff0c;分型是不是把动态的过程呈现出静态的特征呢&#xff1f; 芒德布罗集&#xff1…

Python(十五)数据类型——bool型

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【动手学深度学习】--08.实战:Kaggle房价预测

文章目录 实战&#xff1a;Kaggle房价预测1.访问和读取数据集2.数据预处理2.1标准化数据2.2离散数据处理 3.训练4.K折交叉验证5.模型选择 实战&#xff1a;Kaggle房价预测 1.访问和读取数据集 # 如果没有安装pandas&#xff0c;请取消下一行的注释 # !pip install pandas%matp…

华为云CodeArts产品体验的心得体会及想法

文章目录 前言CodeArts 的产品优势一站式软件开发生产线研发安全Built-In华为多年研发实践能力及规范外溢高质高效敏捷交付 功能特性说明体验感受问题描述完结 前言 华为云作为一家全球领先的云计算服务提供商&#xff0c;致力于为企业和个人用户提供高效、安全、可靠的云服务。…

基于SpringBoot+vue的在线答疑系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

《实战AI低代码》:普元智能化低代码开发平台发布,结合专有模型大幅提升软件生产力

在7月6日举办的“低代码+AI”产品战略发布会上,普元智能化低代码开发平台正式发布。该平台融合了普元自主研发的专有模型,同时也接入了多款AI大模型的功能。它提供了一系列低代码产品,包括中间件、业务分析、应用开发、数据中台和业务流程自动化等,旨在简化企业的复杂软件生…

Linux网络基础 — 传输层

目录 再谈端口号 端口号范围划分 认识知名端口号 netstat pidof UDP协议 UDP协议端格式 UDP的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议段格式 几个问题&#xff1a; 确认应答(ACK)机制 6个标记位 超时重传机制 连接…

rust 引用怎么用

本来好好的引用&#xff0c;被 rust 玩坏了&#xff0c;搞得自己都不会使用引用了&#xff0c;我们还是从简单的例子入手&#xff0c;来探索使用引用可能遇到额问题。 下面的示例代码编译不通过&#xff0c;在 s1 赋值给变量 s2 的过程中&#xff0c;字符串 neojos 值的所有权…

webGPT浏览器安装

edge点击“获取” https://microsoftedge.microsoft.com/addons/detail/wetab%E5%85%8D%E8%B4%B9chatgpt%E6%96%B0%E6%A0%87%E7%AD%BE%E9%A1%B5/bpelnogcookhocnaokfpoeinibimbeff?utm_sourceSteamDB # 其他浏览器安装教程如下&#xff1a; https://www.wetab.link/

springcloud gateway 介绍与使用

定义 该项目提供了一个用于在 Spring WebFlux 之上构建 API 网关的库。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API&#xff0c;并为它们提供横切关注点&#xff0c;例如&#xff1a;安全性、监控/指标和弹性 特征 Spring Cloud Gateway 特性&#xff1a;…

Smartbi 身份认证绕过漏洞

0x00 简介 Smartbi是广州思迈特软件有限公司旗下的商业智能BI和数据分析产品&#xff0c;致力于为企业客户提供一站式商业智能解决方案。 0x01 漏洞概述 Smartbi在安装时会内置三个用户&#xff08;public、service、system&#xff09;&#xff0c;在使用特定接口时&#x…

只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)

目录 前言 settimeout/setinterval requestAnimationFrame 基本用法 时间戳参数 帧数与时间戳计算 自动暂停 JS中的贝塞尔曲线 概念 公式 二次贝塞尔 三次贝塞尔 N次贝塞尔 贝塞尔曲线动画 动画类 在动画中使用贝塞尔 总结 相关代码&#xff1a; 贝塞尔曲线相…