jobcher

jobcher

欢迎关注

JOBCHER BLOG
编写 kubernetes 资源描述文件
编写 kubernetes 资源描述文件 1. 部署一个应用 1apiVersion: apps/v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本 2kind: Deployment #该配置的类型,我们使用的是 Deployment 3metadata: #译名为元数据,即 Deployment 的一些基本属性和信息 4 name: nginx-deployment #Deployment 的名称 5 labels: #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解 6 app: nginx #为该Deployment设置key为app,value为nginx的标签 7spec: #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用 8 replicas: 1 #使用该Deployment创建一个应用程序实例 9 selector: #标签选择器,与上面的标签共同作用,目前不需要理解 10 matchLabels: #选择包含标签app:nginx的资源 11 app: nginx 12 template: #这是选择或创建的Pod的模板 13 metadata: #Pod的元数据 14 labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod 15 app: nginx 16 spec: #期望Pod实现的功能(即在pod中部署) 17 containers: #生成container,与docker中的container是同一种 18 - name: nginx #container的名称 19 image: nginx:1.
JOBCHER BLOG
nginx ssh-key connection exception
nginx ssh-key connection exception Not long ago, I wanted to restart the company’s gitlab server.I couldn’t coonect to ssh when it restarted.emm……I try copy the ssh rsa.pub,but it didn’t work. error log: identity_sign: private key ~/.ssh/id_rsa contents do not match public what is happen? solution reconfigure gitlab ssh key! create new ssh key 1ssh-keygen -t rsa -C 'git@gitlab.com' -f ~/.ssh/gitlab-rsa update config file,enter ~./ssh,open config 1# add host 2Host gitlab.com 3 HostName gitlab.
JOBCHER BLOG
kubernetes manual expansion
k8s manual expansion We find k8s-master node.Input the Command: expand 1kubectl scale --replicas=3 deploy my-test-deploy shrink 1kubectl scale --replicas=1 deploy my-test-deploy trouble cleaning get resource list 1kubectl get deployment 2kubectl get pods 3kubectl get nodes 4# exists in the namespace 5kubectl api-resources --namespaced=true 6# not exists in the namespace 7kubectl api-resources --namespaced=false show info 1kubectl describe pod my-test-pod 2kubectl describe deployment my-test-pod exec container 1kubectl exec -ti my-test-pod /bin/bash
JOBCHER BLOG
nginx exporter 安装配置
nginx exporter 安装配置 二进制安装 1wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.10.0/nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz 2tar -zxvf nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz -C ./nginx-exporter 在 nginx 上配置 1./configure \ 2… \ 3--with-http_stub_status_module 4make 5sudo make install 在 nginx.config 上配置 server { # 新增 location /nginx_status { stub_status on; access_log off; } } 重启 nginx 服务 1nginx -t 2nginx -s reload 启动 nginx exporter 1nginx-prometheus-exporter -nginx.scrape-uri http://<nginx>:8080/nginx_status 配置 prometheus 添加 prometheus.yml 1- job_name: "nginx-exporter" 2 file_sd_configs: 3 - files: 4 - "./file_sd/nginx-exporter.yaml" 在 ./file_sd/新建 nginx-exporter.
JOBCHER BLOG
go Struct 结构体
go Struct 结构体 结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。 声明结构体 1//demo_11.go 2package main 3 4import ( 5 "fmt" 6) 7 8type Person struct { 9 Name string 10 Age int 11} 12 13func main() { 14 var p1 Person 15 p1.Name = "Tom" 16 p1.Age = 30 17 fmt.Println("p1 =", p1) 18 19 var p2 = Person{Name:"Burke", Age:31} 20 fmt.Println("p2 =", p2) 21 22 p3 := Person{Name:"Aaron", Age:32} 23 fmt.Println("p2 =", p3) 24 25 //匿名结构体 26 p4 := struct { 27 Name string 28 Age int 29 } {Name:"匿名", Age:33} 30 fmt.
JOBCHER BLOG
go Slice切片语法
go Slice 切片语法 切片是一种动态数组,比数组操作灵活,长度不是固定的,可以进行追加和删除。 len() 和 cap() 返回结果可相同和不同。 声明切片 1//demo_7.go 2package main 3 4import ( 5 "fmt" 6) 7 8func main() { 9 var sli_1 [] int //nil 切片 10 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_1),cap(sli_1),sli_1) 11 12 var sli_2 = [] int {} //空切片 13 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_1),cap(sli_2),sli_2) 14 15 var sli_3 = [] int {1, 2, 3, 4, 5} 16 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_3),cap(sli_3),sli_3) 17 18 sli_4 := [] int {1, 2, 3, 4, 5} 19 fmt.
JOBCHER BLOG
go 基础知识
go 基础知识 目录结构 1├─ code -- 代码根目录 2│ ├─ bin 3│ ├─ pkg 4│ ├─ src 5│ ├── hello 6│ ├── hello.go bin 存放编译后可执行的文件。 pkg 存放编译后的应用包。 src 存放应用源代码。 Hello World 代码 1//在 hello 目录下创建 hello.go 2package main 3 4import ( 5 "fmt" 6) 7 8func main() { 9 fmt.Println("Hello World!") 10} 基础命令 1go build hello 2#在src目录或hello目录下执行 go build hello,只在对应当前目录下生成文件。 3go install hello 4#在src目录或hello目录下执行 go install hello,会把编译好的结果移动到 $GOPATH/bin。 5go run hello 6#在src目录或hello目录下执行 go run hello,不生成任何文件只运行程序。 7go fmt hello 8#在src目录或hello目录下执行 go run hello,格式化代码,将代码修改成标准格式。 数据类型 类型 表示 备注 字符串 string 只能用一对双引号("")或反引号(``)括起来定义,不能用单引号(’’)定义! 布尔 bool 只有 true 和 false,默认为 false。 整型 int8 uint8 int16 uint16 int32 uint32 int64 uint64 int uint 具体长度取决于 CPU 位数。 浮点型 float32 float64 常量声明 常量,在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。
JOBCHER BLOG
VSCode插件推荐=> Code Runner
VSCode 插件推荐=> Code Runner Run code snippet or code file for multiple languages: C, C++, Java, JavaScript, PHP, Python, Perl, Perl 6, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F# Script, F# (.NET Core), C# Script, C# (.NET Core), VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml Script, R, AppleScript, Elixir, Visual Basic .NET, Clojure, Haxe, Objective-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Free Pascal, Haskell, Nim, D, Lisp, Kit, V, SCSS, Sass, CUDA, Less, Fortran, Ring, and custom command
JOBCHER BLOG
ant build.xml 编写
ant build.xml 编写 生成 build.xml Eclipse 自动生成 Ant 的Build.xml 配置文件,生成的方法很隐蔽 选择你要生成Build.xml文件的项目,右键. Export-> General -> Ant Buildfiles . 点 Next,选择项目,再点Finish. 编写 build.xml 1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 3<!-- 每个构建文件对应一个项目。<project>标签时构建文件的根标签。它可以有多个内在属性,就如代码中所示,其各个属性的含义分别如下。 4(1) default表示默认的运行目标,这个属性是必须的。 5(2) basedir表示项目的基准目录。 6(3) name表示项目名。 7(4) description表示项目的描述。 8 --> 9<project default="build" name="Sort"> 10 <!-- 设置属性或文件路径,读取属性使用${property},value路径默认项目根目录 --> 11 <property file="ant/builds.properties" /> 12 13 <property name="src.dir" value="src/statics" /> 14 15 <property name="classes.dir" value="ant/classes" /> 16 17 <property name="lib.dir" value="lib" /> 18 19 <property name="dist.
JOBCHER BLOG
kubernetes 调度过程
k8s 调度过程 执行滚动升级 修改 deployment.yml 文件,追加 rollingUpdate 1# 部署应用 2apiVersion: apps/v1 3kind: Deployment 4metadata: 5 name: jobcher-blog-deployment 6 labels: 7 app: jobcher-blog 8spec: 9 replicas: 3 10 selector: 11 matchLabels: 12 app: jobcher-blog 13 minReadySeconds: 10 #准备10s 14 strategy: 15 type: RollingUpdate 16 rollingUpdate: 17 maxUnavailable: 1 #更新期间不少于3-1 18 maxSurge: 1 #更新期间不超过3+1 19 template: 20 metadata: 21 labels: 22 app: jobcher-blog 23 spec: 24 containers: 25 - name: jobcher-blog-pod 26 image: hub.
JOBCHER BLOG
Golang go build 编译不同版本
Golang go build 编译不同系统下的可执行文件 Mac 系统编译 1CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go 2CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go Linux 系统编译 1CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go 2CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go windows 系统编译 1SET CGO_ENABLED=0 SET GOOS=darwin3 SET GOARCH=amd64 go build test.go 2SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build test.go GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm
JOBCHER BLOG
记录一次上门打散工
记录一次上门打散工 壬寅年头磨难多 人间规则奈吾何 吟诗为把瘟神送 风起大江扬洪波 疫情减弱,遍邀亲友,无人相约,但闻昔日挚友,感怀往事邀吾往之。欲把殷勤牵挂诉,幸之。遂至友舍,诉之:帮忙装个监控吧~ 买物料 和朋友两个人出发,帮朋友邻居家装个监控,他这个监控是要求装在车库里,但是网线要从 4 楼下放下去。所以,我们首先要出门购买一下物料: 带 RJ45 接口监控 足够长的网线 走了 10000 多步人都走傻了~ 布线 这个没啥好说的,纯粹体力活,感谢朋友的暴风之锤,提高了工作效率,加快了项目进度 感谢 感谢朋友,给我这次项目实践和锻炼的机会让我认识到了自己的能力的不足~ 欢迎关注我的博客www.jobcher.com