春风十里不如你 —— Taozi - 测试 https://www.xiongan.host/index.php/tag/%E6%B5%8B%E8%AF%95/ 【k8s】将Go服务上传到k8s https://www.xiongan.host/index.php/archives/215/ 2023-06-07T22:56:55+08:00 将Go服务发布到k8s集群首先安装go环境下载go的tar.gz包,可以前往阿里云镜像站go页面下载相应版本地址:https://mirrors.aliyun.com/golang/?spm=a2c6h.13651104.mirror-free-trial.1.75b41e57BOxyw5然后下载到虚拟机中,并且解压到/usr/local/src中//解压缩go包 [root@master ~]# tar -zxf go1.18.10.linux-amd64.tar.gz -C /usr/local/src //添加环境变量 [root@master src]# vim /etc/profile //添加如下: export GOROOT=/usr/local/src export PATH=$PATH:$GOROOT/bin //保存退出后source一下 source /etc/profile //查看是否成功 go version创建源码文件[root@master ~]# mkdir 0607tz [root@master ~]# cd 0607tz/ [root@master 0607tz]# vim main.go //编辑到文件中 package main import (       "net/http"       "github.com/gin-gonic/gin" ) func statusOKHandler(c *gin.Context) {       c.JSON(http.StatusOK, gin.H{"status": "success~welcome to study"}) } func versionHandler(c *gin.Context) {       c.JSON(http.StatusOK, gin.H{"version": "v1.1版本"}) } func main() {       router := gin.New()       router.Use(gin.Recovery())       router.GET("/", statusOKHandler)       router.GET("/version", versionHandler)       router.Run(":8080") }Go mod初始化项目初始化项目[root@master 0607tz]# go mod init 0607tz go: creating new go.mod: module 0607tz go: to add module requirements and sums:       go mod tidy //成功初始化 //设置代理 [root@master 0607tz]# go env -w GOPROXY=https://goproxy.cn,direct [root@master 0607tz]# go mod tidy //构建源码 [root@master 0607tz]# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o k8s-demo main.go创建镜像编写dockerfile文件[root@master 0607tz]# vim Dockerfile FROM alpine ADD k8s-demo /data/app/ WORKDIR /data/app/ CMD ["/bin/sh","-c","./k8s-demo"]构建镜像[root@master 0607tz]# docker build -t taozheng/k8sdemo:v1 .打包镜像,传到k8s工作节点[root@master 0607tz]# docker save -o k8sdemo.tar.gz taozheng/k8sdemo:v1 [root@master 0607tz]# scp k8sdemo.tar.gz node:/root/ k8sdemo.tar.gz                               100%   16MB 68.0MB/s   00:00 //在node节点解压镜像创建deployment的yaml文件[root@master 0607tz]# vim k8s.yaml //k8s.yaml apiVersion: apps/v1 kind: Deployment metadata: name: k8s-demo namespace: default labels:   app: k8s-demo   cy: taozheng spec: selector:   matchLabels:     app: k8s-demo replicas: 4 template:   metadata:     labels:       app: k8s-demo   spec:     containers:     - image: taozheng/k8sdemo:v1       imagePullPolicy: IfNotPresent       name: k8s-demo       ports:       - containerPort: 8080         protocol: TCP       resources:         limits:           cpu: 100m           memory: 100Mi         requests:           cpu: 50m           memory: 50Mi       livenessProbe:         tcpSocket:           port: 8080         initialDelaySeconds: 10         timeoutSeconds: 3       readinessProbe:         httpGet:           path: /           port: 8080         initialDelaySeconds: 10         timeoutSeconds: 2创建go的服务[root@master 0607tz]# vim gosvc.yaml kind: Service apiVersion: v1 metadata: name: k8s-demo-svc namespace: default labels:   app: k8s-demo   cy: taozheng spec: ports:   - name: api     port: 8080     protocol: TCP     targetPort: 8080 selector:   app: k8s-demok8s部署查看pod和服务信息修改svc的type类型变成nodePort[root@master 0607tz]# kubectl edit svc k8s-demo-svc保存后再次查看,已经修改成功查看svc标签浏览器测试访问: 【Hadoop】全分布式安装集群 https://www.xiongan.host/index.php/archives/213/ 2023-05-28T12:39:00+08:00 Hadoop全分布式安装环境准备首先做免密登录,三台虚拟机分别生成秘钥文件//三台都需要操作 ssh-keygen -t rsa //三台都需要打以下命令,进行秘钥分发 [root@tz1-123 ~]# ssh-copy-id tz1-123 [root@tz1-123 ~]# ssh-copy-id tz2-123 [root@tz1-123 ~]# ssh-copy-id tz3-123修改防火墙设置后,查看三台虚拟机防火墙状态//三台,禁止防火墙自启,立即生效 systemctl disable firewalld --now安装JDK(3台),首先上传安装包到根目录,然后解压在/usr/lib/jvm//修改环境变量/etc/profile JAVA_HOME=/usr/lib/jvm/jdk1.8.0_152 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH部署首先将Hadoop软件包上传至/root中,并解压在/usr/local/src/下修改core-site.xml//将以下内容加在<configuration></configuration>之间 <property> <!--hdfs地址--> <name>fs.defaultFS</name> <value>hdfs://tz1-123:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/src/hadoop/data/tmp</value> </property>修改hadoop-env.sh//在最后添加以下一条 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_152修改hdfs-site.xml//将以下内容加在<configuration></configuration>之间 <!--副本集个数--> <property> <name>dfs.replication</name> <value>3</value> </property> <!--SecondaryNamenode的http地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>tz3-123:50090</value> </property>修改yarn-env.sh//在最后添加以下一条 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_152修改yarn-site.xml//将以下内容加在<configuration></configuration>之间 <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>tz2-123</value> </property>修改mapred-env.sh//在最后添加以下一条 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_152修改mapred-site.xml[root@tz1-123 hadoop]# cp mapred-site.xml.template mapred-site.xml [root@tz1-123 hadoop]# vim mapred-site.xml //将以下内容加在<configuration></configuration>之间 <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>修改slaves[root@tz1-123 hadoop]# vim slaves tz1-123 tz2-123 tz3-123分发Hadoop软件包[root@tz1-123 hadoop]# scp -r /usr/local/src/hadoop tz2-123:/usr/local/src/ [root@tz1-123 hadoop]# scp -r /usr/local/src/hadoop tz3-123:/usr/local/src/修改/etc/profile//在最后添加以下内容 export HADOOP_HOME=/usr/local/src/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin //修改完成后再次分发,并加在环境变量 [root@tz1-123 hadoop]# source /etc/profile [root@tz1-123 hadoop]# scp /etc/profile tz2-123:/etc/ [root@tz1-123 hadoop]# scp /etc/profile tz3-123:/etc/在tz1-123(master)上格式化namenodehdfs namenode -format启动集群并测试[hadoop@tz1-123 ~]$ start-dfs.sh [hadoop@tz2-123 ~]$ start-yarn.sh [root@tz1-123 hadoop]# jps 8096 NameNode 24690 NodeManager 24882 Jps 8293 DataNode [root@tz2-123 ~]# jps 30709 NodeManager 24086 DataNode 30567 ResourceManager 781 Jps [root@tz3-123 ~]# jps 23988 DataNode 604 Jps 30494 NodeManagerHDFS Shell操作HDFS Shell操作以hadoop fs或hdfs dfs开头。#查看某路径下文件夹 hadoop fs -ls HDFS路径 #在HDFS上创建文件夹 hadoop fs -mkdir HDFS文件夹路径 #在HDFS上创建文件夹(上级目录不存在) hadoop fs -mkdir -p HDFS文件夹路径 #将本地文件上传到HDFS上 hadoop fs -put 本地文件路径 HDFS路径 #查看集群文件的内容 hadoop fs -cat HDFS文件路径 #从HDFS上下载文件到本地 hadoop fs -get HDFS文件路径 本地路径 #删除HDFS上空文件夹 hadoop fs -rmdir HDFS文件夹路径 #删除HDFS上的非空文件夹 hadoop fs -rm -r HDFS文件夹路径 #删除HDFS上的文件 hadoop fs -rm HDFS文件路径 #将HDFS上的路径剪切至另一个路径下 hadoop fs -mv HDFS源路径 HDFS目标路径 #将HDFS上的路径复制到另一个路径下 hadoop fs -cp HDFS源路径 HDFS目标路径 #在HDFS上创建一个文件 hadoop fs -touchz HDFS路径我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=35n3trqr2ug48 【Packmaker】集群部署实践+测试 https://www.xiongan.host/index.php/archives/86/ 2022-10-19T08:13:00+08:00 主机名ip角色Node01192.168.123.23节点1Node02192.168.123.123节点2首先安装pssh远程服务yum install -y pssh两台虚拟机都需要编辑hosts文件分别写入node01、node02的ip 和主机名生成免密登录,就可以无需密码直接登陆node01和node02ssh-keygen -t rsassh-copy-id -i /root/.ssh/id_rsa.pub root@node02-tzNode02端也需要进行相同操作之后安装pacemaker服务并设置开机自启pssh -h host-list.txt -i 'yum install pacemaker pcs -y'pssh -h host-list.txt -i 'systemctl enable --now pcsd'配置 Pacemaker Cluster:设置cluster的账号密码pssh -h host-list.txt -i 'echo 123456 | passwd --stdin hacluster'设置防火墙:pssh -h host-list.txt -i 'firewall-cmd --add-service=high-availability --permanent'添加服务pssh -h host-list.txt -i 'firewall-cmd --reload'加载防火墙建立 Cluster 授权:pcs cluster auth node01-tz node02-tz配置 Cluster(集群名称为:tz-cluster):pcs cluster setup --name tz-cluster node01-tz node02-tz启动 Cluster:pcs cluster start –all使 Cluster 随机启动:pcs cluster enable --all验证集群状态:pcs status cluster添加集群资源:两台节点需要安装httpd服务,不需要启动pssh -h host-list.txt -i 'yum install httpd -y'两台服务器都需要编辑一个新的配置文件vim /etc/httpd/conf.d/server_status.confExtendedStatus On <Location /server-status> SetHandler server-status Require local </Location> 并写入一个测试页面到/var/www/html/index.html配置 Cluster 并设定 VIP:[root@node01-tz ~]# pcs property set stonith-enabled=false <==关闭 stonith 功能[root@node01-tz ~]# pcs property set no-quorum policy=ignore <==忽略仲裁[root@node01-tz ~]# pcs property set default-resource-stickiness="INFINITY" <==设置资源超 时时间[root@node01-tz ~]# pcs property list<==显示设定pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.123.111 cidr_netmask=24 op monitor interval=30s <==设定 VIP pcs status resources <==显示资源信息 添加 httpd 资源: pcs resource create Web123-Cluster ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=1min[root@node01-tz ~]# pcs constraint colocation add Web123-Cluster with VIP INFINITY[root@node01-tz ~]# pcs constraint order VIP then Web123-Cluster <==设定启动顺讯:先启动 VIP 在启动 WEB123-Clusterpcs constraint <==显示资源情况客户端测试:停止 ndoe1 节点的 httpd 资源,客户端再测试:pcs cluster stop node01-tz就自动切换到了node02上使用 WEB GUI 管理 PaceMakerfirewall-cmd --add-port=2224/tcp --permanentfirewall-cmd --reload访问https://192.168.123.111:2224注:①80端口占用查询:netstat -tlnp|grep 80杀死已经存在的80端口服务Kill -9 进程号firewall-cmd --zone=public--add-port=80/tcp --permanent ###添加80端口Firewall-cmd --reload ###重载防火墙②ssh密钥生成信息只能存在一个,需要手动添加到本机与对方的auth开头文件和konw文件中>>>>>/root/.ssh/