主頁 >  其他 > Kubernetes 集群管理-Helm部署及使用

Kubernetes 集群管理-Helm部署及使用

2020-09-11 01:55:47 其他

Helm 介紹

Helm 是 Deis 開發的一個用于Kubernetes 應用的包管理工具,主要用來管理 Charts,有點類似 CentOS 中的 yum包管理工具,可以很方便的將之前打包的好的yaml 檔案部署到Kubernetes上,

為何需要Helm?

kubernetes上的應用物件,都是由特定的資源描述組成,包括deploymentservice等,都保存各自檔案中或集中寫到一個組態檔中,然后通過kubectl apply -f ...進行部署,

如果應用只是一個或幾個這樣的服務組成,上面的部署方式足夠了,而對于一個復雜的應用,會有很多類似上面的資源檔案,例如為服務架構應用,組成應用的服務可能多達十個,幾十個,如果有更新或回滾應用的需求,可能要修改和維護所涉及的大量資源檔案,而這種組織和管理應用的方式就顯得力不從心,且由于缺少對發布過的應用版本管理和空置,使Kubernetes上的應用和更新等面臨諸多的挑戰,主要面臨以下幾個問題:

  • 如何管理、編輯和更新這些分散的kubernetes應用組態檔,
  • 如何把一套相關的組態檔作為一個應用進行管理,
  • 如何分發和重用kubernetes的應用配置,

Helm 組件

?? helm

Helm是一個命令列下的客戶端工具,主要用于kubernetes應用程式Chart的創建、打包、發布和管理

?? Tiller

Tiller 是 Helm 的服務端,部署在Kubernetes集群中,Tiller 用于接收 Helm 的請求,并根據 Chart 生成 kubernetes 的部署檔案(Helm稱為Release),然后提交給 Kubernetes 創建應用,Tiller 還提供了 Release 的升級、洗掉、回滾等一系列功能

?? Chart

Helm 的軟體包,采用 TAR 格式,類似于 yum 的 rpm包,其包含了一組定義 Kubernetes 資源相關的 YAML 檔案

?? Release

基于 Chart 部署物體,一個 chart 被 helm 運行后將會生成對應的一個 release;將在 kubernetes 中創建出真實運行的資源物件,

?? Repoistory

Helm 的軟體倉庫,Repository 本質上是一個 Web 服務器,該服務器保存了一系列的 Chart 軟體包以供用戶下載,并且提供了一個該 Repository 的 Chart 包的清單檔案以供查詢,Helm 可以同時管理多個不同的 Repository,

Helm 作業原理

下圖描述了 Helm 的幾個關鍵組件 Helm(客戶端)、Tiller(服務器)、Repository(Chart軟體倉庫)、Chart(軟體包)之間的關系,

Chart Install 程序?

  • Helm 從指定的目錄或者 TAR 檔案中決議出 Chart 結構資訊,
  • Heml 將指定的 Chart 結構和 Values 資訊通過 gRPC 傳遞給 Tiller,
  • Tiller 根據 Chart 和 Values 生成一個 Release,
  • Tiller 根據 Release 發送給 Kubernetes 用于生成 Release,

Chart Update 程序

  • Helm 從指定的目錄或者 TAR 檔案中決議出 Chart 結構資訊,
  • Helm 將需要更新的 Release 的名稱、Chart結構和 Values 資訊傳遞給 Tiller,
  • Tiller 生成 Release 并更新指定名稱的 Release 和 History,
  • Tiller 將 Release 發送給 Kubernetes 用于更新 Release,

Chart Rollback 程序

  • Helm 將要回滾的 Release 的名稱傳遞給 Tiller,
  • Tiller 根據 Release 的名稱查找 History,
  • Tiller 從 History 中獲取上一個 Release,
  • Tiller 將上一個 Release 發送給 Kubernetes 用于替換當前 Release,

Chart 處理依賴說明

Tiller 在處理 Chart 時,直接將 Chart 以及其依賴的所有 Charts 合并為一個 Release,同時傳遞給 Kubernetes,因此 Tiller 并不負責管理依賴之間的啟動順序,Chart 中的應用需要能夠自行處理依賴關系,

Helm 版本介紹

Helm2時期,添加了Tiller組件和GRPC來處理Helm chart的安裝和管理,呈現chart并將它們推送到Kubernetes API服務器,2019年11月13日,Helm 團隊發布了 Helm v3 的第一個穩定版本

架構變化

很明顯從helm v3移除了 Tiller

Helm 3新特性

  • Release名稱可以在不同命名空間重用

  • 支持將 Chart 推送至 Docker 鏡像倉庫中

  • 使用JSONSchema驗證chart values

  • 其他特性如下

  1. 為了更好地協調其他包管理者的措辭 Helm CLI 個別更名

    helm delete` 更名為 `helm uninstall
    helm inspect` 更名為 `helm show
    helm fetch` 更名為 `helm pull
    但以上舊的命令當前仍能使用
    
  2. 移除了用于本地臨時搭建 Chart Repository helm serve 命令,

  3. 自動創建名稱空間

    在不存在的命名空間中創建發行版時,Helm 2創建了命名空間,Helm 3遵循其他Kubernetes物件的行為,如果命名空間不存在則回傳錯誤,
    
  4. 不再需要requirements.yaml, 依賴關系是直接在chart.yaml中定義,

Helm 部署

helm 部署方式有很多,可以參考官方檔案

helm v2 部署

1.下載helm

# wget https://mirrors.huaweicloud.com/helm/v2.16.9/helm-v2.16.9-linux-amd64.tar.gz

2.安裝配置

# tar xvzf helm-v2.16.9-linux-amd64.tar.gz
# cp -av linux-amd64/helm /usr/bin/
# cp -av linux-amd64/tiller /usr/bin/

3.指定組態檔(此步驟視情況而定,比如rke部署的k8s集群則需要;kubeadm部署的集群默認在master節點則不需要)

# vim /root/.bashrc
alias helm='helm --kubeconfig /home/rancher/kube_config_cluster.yml'
# source /root/.bashrc

4.在kube-system命名空間中創建serviceaccount

# kubectl create serviceaccount --namespace kube-system tiller

5.創建ClousterRoleBinding以授予tiller賬戶對集群的訪問權限

# kubectl create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccounts --namespace=kube-system:tiller

6.安裝helm server(tiller),注意保持版本號相同

 helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.9  --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts --force-upgrade

7.查看tiller服務是否正常運行

# kubectl get pod -n kube-system -l app=helm
NAME                             READY   STATUS    RESTARTS   AGE
tiller-deploy-79f8998f84-85lwq   1/1     Running   0          45s

8.查看版本(注意:client和server版本必須要保持一致)

# helm version
Client: &version.Version{SemVer:"v2.16.9", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.16.9", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

補充:如果需要在kubernetes中卸載已部署的 Tiller, 可使用如下命令進行卸載

# helm reset

helm v3 部署

helm v3已經移除了tiller,所以只需要部署helm客戶端即可,即解壓軟體移動命令即可

# wget https://mirrors.huaweicloud.com/helm/v3.2.1/helm-v3.2.1-linux-amd64.tar.gz
# tar xvzf helm-v3.2.1-linux-amd64.tar.gz
# cp -av linux-adm64/helm /usr/bin/

helm 常用命令

命令 描述
create 創建一個chart并指定名字
dependency 管理chart依賴
get 下載一個release,可用子命令:all、hooks、manifest、notes、values
history 獲取release歷史
install 安裝一個chart
list 列出release
package 將chart目錄打包到chart存檔檔案中
pull 從遠程倉庫中下載chart并解壓到本地 # helm pull stable/mysql --untar
repo 添加,列出,移除,更新和索引chart倉庫,可用子命令:add、index、list、remove、update
rollback 從之前版本回滾
search 根據關鍵字搜索chart,可用子命令:hub、repo
show 查看chart詳細資訊,可用子命令:all、chart、readme、values
status 顯示已命名版本的狀態
template 本地呈現模板
uninstall 卸載一個release
upgrade 更新一個release
version 查看helm客戶端版本

添加Chart倉庫

常用倉庫如下:

  • 微軟倉庫(http://mirror.azure.cn/kubernetes/charts/)這個倉庫強烈推薦,基本上官網有的chart這里都有,
  • 阿里云倉庫(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
  • 官方倉庫(https://hub.kubeapps.com/charts/incubator)官方chart倉庫,由于眾所周知原因,在國內有點不好使,故不推薦,
  • elasticsearch (https://helm.elastic.co) elastic

?? 添加倉庫

添加微軟倉庫為 stable
# helm repo add stable http://mirror.azure.cn/kubernetes/charts
"stable" has been added to your repositories

添加阿里云倉庫為 aliyun
# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 
"aliyun" has been added to your repositories

?? 查看倉庫

# helm repo list 
NAME  	URL                                                   
stable	http://mirror.azure.cn/kubernetes/charts              
aliyun	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

?? 查看一個倉庫中所有的包

# helm search repo stable
NAME                                 	CHART VERSION	APP VERSION            	DESCRIPTION                                       
stable/acs-engine-autoscaler         	2.2.2        	2.1.1                  	DEPRECATED Scales worker nodes within agent pools 
stable/aerospike                     	0.3.2        	v4.5.0.5               	A Helm chart for Aerospike in Kubernetes          
stable/airflow                       	7.1.5        	1.10.10                	Airflow is a platform to programmatically autho...
stable/ambassador                    	5.3.2        	0.86.1                 	DEPRECATED A Helm chart for Datawire Ambassador   
stable/anchore-engine                	1.6.9        	0.7.2                  	Anchore container analysis and policy evaluatio...

?? 洗掉倉庫

# helm repo remove aliyun
"aliyun" has been removed from your repositories

Helm 基本使用

部署一個應用

這里示例通過helm部署一個MySQL進行示例

1.查找 chart

# helm search repo mysql
NAME                            	CHART VERSION	APP VERSION	DESCRIPTION                                       
stable/mysql                    	1.6.4        	5.7.30     	Fast, reliable, scalable, and easy to use open-...
......

2.查看下這個chart的變數資訊,這里將變數檔案保存到本地,進行修改后再使用,這里我們將persistenceenabled改為false,表示不適用存盤卷,查看變數檔案可以發現會自動系結pvc,但是這里沒有提前準備pv,如果不修改也可以,先創建一個pv即可,

# helm show values stable/mysql > values.yaml
# vim values.yaml
persistence:
  enabled: false      # 修改為false
  ## database data Persistent Volume Storage Class
  ## If defined, storageClassName: <storageClass>
  ## If set to "-", storageClassName: "", which disables dynamic provisioning
  ## If undefined (the default) or set to null, no storageClassName spec is
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
  ##   GKE, AWS & OpenStack)
  ##
  # storageClass: "-"
  accessMode: ReadWriteOnce
  size: 8Gi
  annotations: {}

3.通過helm install 進行安裝,這里由于修改了values,所以通過-f指定了本地的values.yaml檔案

# helm install my-mysql -f values.yaml stable/mysql
NAME: my-mysql
LAST DEPLOYED: Sun Jun 21 13:35:04 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
MySQL can be accessed via port 3306 on the following DNS name from within your cluster:
my-mysql.default.svc.cluster.local

To get your root password run:

    MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo)

To connect to your database:

1. Run an Ubuntu pod that you can use as a client:

    kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- bash -il

2. Install the mysql client:

    $ apt-get update && apt-get install mysql-client -y

3. Connect using the mysql cli, then provide your password:
    $ mysql -h my-mysql -p

To connect to your database directly from outside the K8s cluster:
    MYSQL_HOST=127.0.0.1
    MYSQL_PORT=3306

    # Execute the following command to route the connection:
    kubectl port-forward svc/my-mysql 3306

    mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}

4.查看狀態

# helm list 
NAME    	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART      	APP VERSION
my-mysql	default  	1       	2020-06-21 13:38:32.133419251 +0800 CST	deployed	mysql-1.6.4	5.7.30 

查看發布狀態
# helm status my-mysql

查看pod狀態
# kubectl get pods 
NAME                        READY   STATUS    RESTARTS   AGE
my-mysql-7557c5798c-lvshx   1/1     Running   0          35s

5.根據上面提示的查看密碼,進行連接MySQL進行測驗

# kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo
i8MgJpwwZe

# kubectl exec -it my-mysql-7557c5798c-lvshx -- mysql -u root -pi8MgJpwwZe
......

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

構建一個 Helm Chart

上面變示例了通過helm部署一個應用(MySQL),我們也可以進行自行構建Chart進行部署,

Chart 目錄結構說明

mychart/
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml
  • Chart.yaml:用于描述這個 Chart 的基本資訊,包括名字、描述資訊以及版本等,
  • values.yaml:用于存盤 templates 目錄中模板檔案中用到的變數的值,
  • templates:目錄里面存放所有的 yaml 模板檔案,
  • charts:目錄里存放這個 chart 依賴的所有子 chart,
  • NOTES.txt:用于介紹 Chart 幫助資訊,helm install 部署后展示給用戶;例如:如何使用這個Chart,列出預設的設定等,
  • _helpers.tpl:放置模板助手的地方,可以在整個 chart 中重復使用

?? 示例

構建 Chart

1.首先通過create生成chart模板樣式,進行修改即可,這里采用完全自定義,所以我們將用不到的yaml檔案進行洗掉

# helm create mychart
Creating mychart

# tree mychart/
mychart/
├── charts
├── Chart.yaml
├── templates
└── values.yaml

2 directories, 2 files

2.修改Chart.yaml檔案,定義版本和名字等

# cd mychart/
# vim Chart.yaml 
apiVersion: v2
name: mychart
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: 1.16.0

3.這里部署通過部署一個web站點nginx進行示例,首先通過kubectl create 生產一個deployment 模板進行修改,下面yaml檔案中將 副本數(replicas)、name、image定義為了變數進行傳遞

# kubectl create deployment deployment --image=nginx:1.12 --dry-run -o yaml > templates/deployment.yaml
# vim templates/deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: deployment
  name: {{ .Values.Name }}
spec:
  replicas: {{ .Values.replicas }}
  selector:
    matchLabels:
      app: deployment
  template:
    metadata:
      labels:
        app: deployment
    spec:
      containers:
      - image: {{ .Values.image }}
        name: nginx

4.撰寫變數檔案

# vim values.yaml 
Name: mychart-deploy-demo
replicas: 3
image: nginx:1.18.0

其實上面這兩個檔案的內容就已經算是一個可以安裝的chart包了,

5.進行安裝

# helm install web mychart/
NAME: web
LAST DEPLOYED: Sun Jun 21 17:50:53 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

# helm list 
NAME    	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART      	APP VERSION
my-mysql	default  	1       	2020-06-21 17:15:24.316454342 +0800 CST	deployed	mysql-1.6.4	5.7.30 

# kubectl get pods -o wide 
NAME                                   READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATES
mychart-deploy-demo-8475948ddd-565kk   1/1     Running   0          11s   10.244.1.35   k8s-node1   <none>           <none>
mychart-deploy-demo-8475948ddd-6d69h   1/1     Running   0          11s   10.244.2.33   k8s-node2   <none>           <none>
mychart-deploy-demo-8475948ddd-gvqqv   1/1     Running   0          11s   10.244.2.32   k8s-node2   <none>           <none>

升級

1.首先進行訪問測驗,可以看到訪問結果nginx版本為1.18.0

# curl -I 10.244.1.35
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Sun, 21 Jun 2020 10:15:08 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 21 Apr 2020 12:43:12 GMT
Connection: keep-alive
ETag: "5e9eea60-264"
Accept-Ranges: bytes

2.發布新版本的chart時,或者當要更改發布的配置時,可以使用helm upgrade命令,比如這里升級鏡像為1.19.0

# helm upgrade --set image=nginx:1.19.0 web mychart
Release "web" has been upgraded. Happy Helming!
NAME: web
LAST DEPLOYED: Sun Jun 21 18:20:10 2020
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None


# kubectl get pods -o wide 
NAME                                   READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATES
mychart-deploy-demo-59fc9f9c7f-kk5mq   1/1     Running   0          15s   10.244.2.35   k8s-node2   <none>           <none>
mychart-deploy-demo-59fc9f9c7f-w94zq   1/1     Running   0          12s   10.244.2.36   k8s-node2   <none>           <none>
mychart-deploy-demo-59fc9f9c7f-x2pxg   1/1     Running   0          14s   10.244.1.39   k8s-node1   <none>           <none>

訪問測驗
# curl -I 10.244.1.39
HTTP/1.1 200 OK
Server: nginx/1.19.0
Date: Sun, 21 Jun 2020 10:26:16 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 May 2020 15:00:20 GMT
Connection: keep-alive
ETag: "5ecd2f04-264"
Accept-Ranges: bytes

可以看到已經升級鏡像版本為1.19.0版本,如果有大量的改動,那么可以修改values檔案,然后通過如下命令進行更新

# helm upgrade -f values.yaml web mychart

回滾

如果在發布后沒有達到預期的效果,則可以使用helm rollback回滾到之前的版本,通過helm history命令可以查看發布版本記錄

# helm history web
REVISION	UPDATED                 	STATUS    	CHART        	APP VERSION	DESCRIPTION     
1       	Sun Jun 21 18:24:41 2020	superseded	mychart-0.1.0	1.16.0     	Install complete
2       	Sun Jun 21 18:25:27 2020	deployed  	mychart-0.1.0	1.16.0     	Upgrade complete

比如這里我們要回滾到第一個版本:

# helm rollback web 1
Rollback was a success! Happy Helming!

在通過helm history命令進行查看,可以看到后面的 DESCRIPTION還有詳細版本說明,

# helm history web
REVISION	UPDATED                 	STATUS    	CHART        	APP VERSION	DESCRIPTION     
1       	Sun Jun 21 18:24:41 2020	superseded	mychart-0.1.0	1.16.0     	Install complete
2       	Sun Jun 21 18:25:27 2020	superseded	mychart-0.1.0	1.16.0     	Upgrade complete
3       	Sun Jun 21 18:30:52 2020	deployed  	mychart-0.1.0	1.16.0     	Rollback to 1

還可以通過helm get manifest 命令查看模板被渲染過后的資源檔案

# helm get manifest web
---
# Source: mychart/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: deployment
  name: mychart-deploy-demo
spec:
  replicas: 3
  selector:
    matchLabels:
      app: deployment
  template:
    metadata:
      labels:
        app: deployment
    spec:
      containers:
      - image: nginx:1.18.0
        name: nginx

打包

如果我們需要將構建的Chart打包保存,并推送到charts倉庫共享別人使用,則可以通過helm package命令進行打包

# helm package mychart/
Successfully packaged chart and saved it to: /root/helm/mychart-0.1.0.tgz

Helm 自定義安裝

有時候我們需要安裝應用,但是默認的chart的一些引數并不是我們需要的,這時候則需要我們自定義引數傳給已有的 chart 進行安裝應用,示例,下面將進行自定義安裝MySQL

查看Chart默認value

# helm show values stable/mysql
......
## Specify password for root user
##
## Default: random 10 character string
# mysqlRootPassword: testing

## Create a database user
##
# mysqlUser:
## Default: random 10 character string
# mysqlPassword:

## Allow unauthenticated access, uncomment to enable
##
# mysqlAllowEmptyPassword: true

## Create a database
##
# mysqlDatabase:
......
persistence:
  enabled: true
......

在安裝程序中傳遞配置資料的方式有兩種:

  • --values(或-f):指定帶有替代引數及值的YAML檔案,可以多次指定,最后一個檔案的優先級最高,
  • --set:在命令列上指定替代,

組態檔定義配置項

通過上面查看默認的變數中,我們進行自定義MySQL root用戶密碼,并安裝完成自動創建一個應用用戶及設定密碼,并創建一個應用資料庫helm;同事設定了不啟用persistence

# vim mysql_values.yaml
mysqlRootPassword: te123
mysqlUser: helm
mysqlPassword: helm123
mysqlDatabase: helm
persistence:
  enabled: false

命令列定義配置項

# helm install --set mysqlRootPassword=te123,mysqlUser=helm,mysqlPassword=helm123,mysqlDatabase=helm,persistence.enabled=false mysql-test stable/mysql

更多values yaml與set使用對應如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3915.html

標籤:其他

上一篇:kubernetes的iptables與ipvs詳解

下一篇:離線及實時實操架構

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more