主頁 >  其他 > 零基礎教程!一文教你使用Rancher 2.3和Terraform運行Windows容器

零基礎教程!一文教你使用Rancher 2.3和Terraform運行Windows容器

2020-10-18 17:00:09 其他

本文來自Rancher Labs

介 紹

在Kubernetes 1.14版本中已經GA了對Windows的支持,這一結果凝結了一群優秀的工程師的努力,他們來自微軟、Pivotal、VMware、紅帽以及現在已經關閉的Apprenda等幾家公司,我在Apprenda作業時,不定時會為sig-windows社區做出一些貢獻,即便現在在Rancher Labs任職,也一直關注它的動向,所以當公司決定在Rancher中增加對Windows支持時,我極為興奮,

Rancher 2.3已于本月月初發布,這是首個GA支持Windows容器的Kubernetes管理平臺,它極大降低了企業使用Windows容器的復雜性,并為基于Windows遺留應用程式的現代化提供快捷的途徑——無論這些程式是在本地運行還是在多云環境中運行,此外,Rancher 2.3還可以將它們容器化并將其轉換為高效、安全和可遷移的多云應用程式,從而省去重寫應用程式的作業,

在本文中,我們將在運行RKE的Kubernetes集群之上配置Rancher集群,我們也將會配置同時支持Linux和Windows容器的集群,完成配置后,我們將聊聊作業系統的定位,因為Kubernetes scheduler需要指導各種Linux和Windows容器在啟動時的部署位置,

我們的目標是以完全自動化的方式執行這一操作,由于Rancher 2.3目前尚未stable,因此這無法在生產環境中使用,但如果你正需要使用Azure和Rancher來完成基礎架構自動化,那么這對你們的團隊而言將會是一個良好的開端,退一萬步而言,即使你不使用Azure,在本例中的許多概念和代碼都可以應用于其他環境中,

考慮因素

Windows vs. Linux

在我們正式開始之前,我需要告知你許多注意事項和“陷阱”,首先,最顯而易見的就是:Windows不是Linux,Windows新增了支持網路網格中的容器化應用程式所需的子系統,它們是Windows作業系統專有的,由Windows主機網路服務和Windows主機計算服務實作,作業系統以及底層容器運行時的配置、故障排除以及運維維護將會有顯著區別,而且,Windows節點收到Windows Server licensing的約束,容器鏡像也受Windows容器的補充許可條款的約束,

Windows OS版本

WindowsOS版本需要系結到特定的容器鏡像版本,這是Windows獨有的,使用Hyper-V隔離可以克服這一問題,但是從Kubernetes 1.16開始,Kubernetes不支持Hyper-V隔離,因此,Kubernetes和Rancher僅能在Windows Server 1809/Windows Server 2019以及Windows Server containers Builds 17763 以及Docker EE-basic 18.09之前的版本中運行,

持久性支持和CSI插件

Kubernetes 1.16版本以來,CSI插件支持alpha版本,Windows節點支持大量的in-tree和flex volume,

CNI插件

Rancher 支持僅限于flannel提供的主機網關(L2Bridge)和VXLAN(Overlay)網路支持,在我們的方案中,我們將利用默認的VXLAN,因為當節點并不都在同一個網路上時,主機網關選項需要User Defined Routes配置,這取決于提供商,所以我們將利用VXLAN功能的簡單性,根據Kubernetes檔案,這是alpha級別的支持,當前沒有支持Kubernetes網路策略API的開源Windows網路插件,

其他限制

請確保你已經閱讀了Kubernetes檔案,因為在Windows容器中有許多功能無法實作,或者其功能和Linux中的相同功能實作方式有所不同,

Kubernetes檔案:

https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#limitations

基礎架構即代碼

自動化是實作DevOps的第一種方式,我們將自動化我們的Rancher集群和要在該集群中配置的Azure節點的基礎架構,

Terraform

Terraform是一個開源的基礎架構自動化編排工具,它幾乎支持所有市面上能見到的云服務提供商,今天我們將使用這一工具來自動化配置,確保你運行的Terraform版本至少是Terraform 12,在本文中,使用Terraform 版本是v0.12.9,

$ terraform version
Terraform v0.12.9

RKE Provider

用于Terraform 的RKE provider是一個社區專案,并非由Rancher官方進行研發的,但包括我在內的Rancher的很多工程師都在使用,因為這是一個社區provider而不是Terraform官方的provider,因此你需要安裝最新版本到你的Terraform插件目錄中,對于大部分的Linux發行版來說,你可以使用本文資源庫中包含的setup-rke-terraform-provider.sh腳本,

Rancher Provider

用于Terraform的Rancher2 provider是Terraform支持的provider,它通過Rancher REST API來自動化Rancher,我們將用它從Terraform的虛擬機中創建Kubernetes集群,這一虛擬機需要使用Azure Resource Manager和Azure Active Directory Terraform Provider進行創建,

本例的Format

本文中的Terraform模型的每個步驟都會被拆分成子模型,這將增強模型可靠性并且將來如果你創建了其他自動化架構,這些模型都可以重新使用,

Part1:設定Rancher集群

登錄到Azure

Azure Resource Manager和Azure Active Directory Terraform Provider將使用一個激活的Azure Cli登錄以訪問Azure,他們可以使用其他認證方法,但在本例中,我在運行Terraform之前先登錄,

az login
Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
  {
    "cloudName": "AzureCloud",
    "id": "14a619f7-a887-4635-8647-d8f46f92eaac",
    "isDefault": true,
    "name": "Rancher Labs Shared",
    "state": "Enabled",
    "tenantId": "abb5adde-bee8-4821-8b03-e63efdc7701c",
    "user": {
      "name": "[email protected]",
      "type": "user"
    }
  }
]

設定Resource Group

Azure Resource Group是Rancher集群的節點和其他虛擬硬體存盤的位置范圍,我們實際上將會創建兩個組,一個用于Rancher集群,另一個用于Kubernetes集群,那將在resource-group module中完成,

https://github.com/JasonvanBrackel/cattle-drive/tree/master/terraform-module/resourcegroup-module

resource "azurerm_resource_group" "resource-group" {
  name     = var.group-name
  location = var.region
}

設定硬體

虛擬網路

我們將需要一個虛擬網路和子網,我們將使用network-module在各自的資源組中分別設定它們,

我們將使用node-module設定每個節點,既然每個節點都需要安裝Docker,那么我們在使用Rancher install-docker腳本配置和安裝Docker時,我們需要運行cloud-init檔案,這個腳本將檢測Linux發行版并且安裝Docker,

os_profile {
    computer_name = "${local.prefix}-${count.index}-vm"
    admin_username = var.node-definition.admin-username
    custom_data    = https://www.cnblogs.com/rancherlabs/p/templatefile("./cloud-init.template", { docker-version = var.node-definition.docker-version, admin-username = var.node-definition.admin-username, additionalCommand = "${var.commandToExecute} --address ${azurerm_public_ip.publicIp[count.index].ip_address} --internal-address ${azurerm_network_interface.nic[count.index].ip_configuration[0].private_ip_address}"  })
  }
#cloud-config
repo_update: true
repo_upgrade: all

runcmd:
    - [ sh, -c, "curl https://releases.rancher.com/install-docker/${docker-version}.sh | sh && sudo usermod -a -G docker  ${admin-username}" ]
    - [ sh, -c, "${additionalCommand}"]

模板中的附加命令塊用這些節點的sleep 0填充,但是稍后該命令將用于Linux節點,以將Rancher管理的自定義集群節點加入平臺,

設定節點

接下來,我們將為每個角色創建幾組節點:控制平面、etcd和worker,我們需要考慮幾件事,因為Azure處理其虛擬網路的方式有一些獨特之處,它會保留前幾個IP供自己使用,因此在創建靜態IP時需要考慮這一特性,這就是在NIC創建中的4個IP,由于我們也管理子網的IP,因此我們在每個IP中都進行了處理,

resource "azurerm_network_interface" "nic" {
  count               = var.node-count
  name                = "${local.prefix}-${count.index}-nic"
  location            = var.resource-group.location
  resource_group_name = var.resource-group.name

  ip_configuration {
    name                          = "${local.prefix}-ip-config-${count.index}"
    subnet_id                     = var.subnet-id
    private_ip_address_allocation = "static"
    private_ip_address            = cidrhost("10.0.1.0/24", count.index + var.address-starting-index + 4)
    public_ip_address_id          = azurerm_public_ip.publicIp[count.index].id
  }
}

為什么不對私有IP使用動態分配?

在創建并完全配置節點之前,Azure的Terraform provider將無法獲取IP地址,而通過靜態處理,我們可以在生成RKE集群期間使用地址,當然,還有其他方法也能解決這一問題,如將基礎架構配置分成多個來運行,但是為簡單起見,還是對IP地址進行靜態管理,

設定前端負載均衡器

默認情況下,Rancher安裝程式將會在每個worker節點安裝一個ingress controller,這意味著我們應該在可用的worker節點之間負載均衡任何流量,我們也將會利用Azure的功能來為公共IP創建一個公共的DNS入口,并且將其用于集群,這可以在loadbalancer-module中完成,

https://github.com/JasonvanBrackel/cattle-drive/tree/master/terraform-module/loadbalancer-module

resource "azurerm_public_ip" "frontendloadbalancer_publicip" {
  name                = "rke-lb-publicip"
  location            = var.resource-group.location
  resource_group_name = var.resource-group.name
  allocation_method   = "Static"
  domain_name_label   = replace(var.domain-name-label, ".", "-")
}

作為替代方案,其中包含使用cloudflare DNS的代碼,我們在這篇文章中沒有使用這一方案,但是你可以不妨一試,如果你使用這個方法,你將需要重置DNS快取或主機檔案入口,以便你的本地計算機可以呼叫Rancher來使用Rancher terraform provider,

provider "cloudflare" {
  email = "${var.cloudflare-email}"
  api_key = "${var.cloudflare-token}"
}

data "cloudflare_zones" "zones" {
  filter {
    name   = "${replace(var.domain-name, ".com", "")}.*" # Modify for other suffixes
    status = "active"
    paused = false
  }
}

#Add a record to the domain
resource "cloudflare_record" "domain" {
  zone_id = data.cloudflare_zones.zones.zones[0].id
  name   = var.domain-name
  value  = https://www.cnblogs.com/rancherlabs/p/var.ip-address
  type   ="A"
  ttl    = "120"
  proxied = "false"
}

使用RKE安裝Kubernetes

我們將使用Azure和Terraform的動態代碼塊創建的節點與開源RKE Terraform Provider來創建一個RKE集群,

dynamic nodes {
    for_each = module.rancher-control.nodes
    content {
      address = module.rancher-control.publicIps[nodes.key].ip_address
      internal_address = module.rancher-control.privateIps[nodes.key].private_ip_address
      user    = module.rancher-control.node-definition.admin-username
      role    = ["controlplane"]
      ssh_key = file(module.rancher-control.node-definition.ssh-keypath-private)
    }
  }

使用RKE安裝Tiller

有很多種方式可以安裝Tiller,你可以使用Rancher官方檔案中的方法,但是在本教程中我們將利用RKE Add-On的特性,

官方檔案:

https://rancher.com/docs/rancher/v2.x/en/installation/ha/helm-init/

  addons = <<EOL
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: tiller
  namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller
  namespace: kube-system
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
EOL
}

初始化Helm

Terraform可以運行本地腳本,既然我們將要使用Helm來安裝cert-manager和Rancher,我們需要初始化Helm,

安裝cert-manager

這一步和Rancher檔案中【使用Tiller安裝cert-manager】的內容一樣,

https://rancher.com/docs/rancher/v2.x/en/installation/ha/helm-rancher/#let-s-encrypt

resource "null_resource" "install-cert-manager" {
  depends_on = [null_resource.initialize-helm]
  provisioner "local-exec" {
    command = file("../install-cert-manager.sh")
  }
}

安裝Rancher

這一步和官方檔案中【安裝Rancher】的內容一樣,

https://rancher.com/docs/rancher/v2.x/en/installation/ha/helm-rancher/

install-rancher腳本有很多個版本,我們所使用的版本要求要有Let’s Encrypt的證書,如果你更習慣使用自簽名的證書,你需要將install-rancher.sh的symlink更改為指向其他版本,并從下面的示例代碼中洗掉let-encrypt變數,

resource "null_resource" "install-rancher" {
  depends_on = [null_resource.install-cert-manager]
  provisioner "local-exec" {
    command = templatefile("../install-rancher.sh", { lets-encrypt-email = var.lets-encrypt-email, lets-encrypt-environment = var.lets-encrypt-environment, rancher-domain-name = local.domain-name })
  }
}

Rancher引導程式

Terraform的Rancher2 Provider包含了一個引導模式,這允許我們可以設定一個admin密碼,你可以在rancherbootstrap-module中看到這一步,

provider "rancher2"  {
  alias = "bootstrap"

  api_url   = var.rancher-url
  bootstrap = true

  insecure = true
}

resource "rancher2_bootstrap" "admin" {
  provider = rancher2.bootstrap
  password = var.admin-password
  telemetry = true
}

我們在這里設定集群url,

provider "rancher2" {
  alias = "admin"

  api_url = rancher2_bootstrap.admin.url
  token_key = rancher2_bootstrap.admin.token

  insecure = true
}


resource "rancher2_setting" "url" {
  provider = rancher2.admin
  name = "server-url"
  value = https://www.cnblogs.com/rancherlabs/p/var.rancher-url
}

Part2:設定Rancher管理的Kubernetes集群

為Azure創建服務主體

在我們可以使用Azure cloud來創建Load Balancer 服務和Azure存盤之前,我們需要先為Cloud Controller Manager配置connector,因此,我們在cluster-module和serviceprincipal-module中創建了一個服務主體,其作用域為集群的Resource Group,

resource "azuread_application" "ad-application" {
  name                       = var.application-name
  homepage                   = "https://${var.application-name}"
  identifier_uris            = ["http://${var.application-name}"]
  available_to_other_tenants = false
}

resource "azuread_service_principal" "service-principal" {
  application_id                = azuread_application.ad-application.application_id
  app_role_assignment_required  = true
}

resource "azurerm_role_assignment" "serviceprincipal-role" {
  scope                = var.resource-group-id
  role_definition_name = "Contributor"
  principal_id         = azuread_service_principal.service-principal.id
}

resource "random_string" "random" {
  length = 32
  special = true
}

resource "azuread_service_principal_password" "service-principal-password" {
  service_principal_id = azuread_service_principal.service-principal.id
  value                = https://www.cnblogs.com/rancherlabs/p/random_string.random.result
  end_date             = timeadd(timestamp(),"720h")
}

定義自定義集群

我們需要設定flannel 網路選項以支持Windows flannel驅動,你將會注意到Azure provider的配置,

resource "rancher2_cluster" "manager" {
  name = var.cluster-name
  description = "Hybrid cluster with Windows and Linux workloads"
  # windows_prefered_cluster = true Not currently supported
  rke_config {
    network {
      plugin = "flannel"
      options = {
        flannel_backend_port = 4789
        flannel_backend_type = "vxlan"
        flannel_backend_vni = 4096
      }
    }
    cloud_provider {
      azure_cloud_provider {
        aad_client_id = var.service-principal.client-id
        aad_client_secret = var.service-principal.client-secret
        subscription_id = var.service-principal.subscription-id
        tenant_id = var.service-principal.tenant-id
      }
    }
  }
}

創建虛擬機

這些虛擬機的創建程序與早期計算機相同,并且包含Docker安裝腳本,這里唯一的改變是使用來自之前創建集群的linux節點命令的附加命令,

module "k8s-worker" {
  source = "./node-module"
  prefix = "worker"

  resource-group = module.k8s-resource-group.resource-group
  node-count = var.k8s-worker-node-count
  subnet-id = module.k8s-network.subnet-id
  address-starting-index = var.k8s-etcd-node-count + var.k8s-controlplane-node-count
  node-definition = local.node-definition
  commandToExecute = "${module.cluster-module.linux-node-command} --worker"
}

創建Windows Workers

Windows worker行程類似于Linux行程,但有一些例外,由于Windows不支持cloud-init檔案,我們需要創建一個Windows自定義腳本擴展,你可以在windowsnode-module中看到它:

https://github.com/JasonvanBrackel/cattle-drive/tree/master/terraform-module/windowsnode-module

Windows worker使用密碼進行認證,還需要VM Agent來運行自定義腳本擴展,

os_profile {
  computer_name = "${local.prefix}-${count.index}-vm"
  admin_username = var.node-definition.admin-username
  admin_password = var.node-definition.admin-password
}

os_profile_windows_config {
  provision_vm_agent = true
}

加入Rancher

節點配置完成之后,自定義腳本擴展將運行Windows節點命令,

注意:

這是與Terraform檔案中不同型別的自定義腳本擴展,適用于Linux虛擬機,Azure可以允許你對Windows節點嘗試使用Terraform型別的擴展,但它最侄訓失敗,

耐心一點噢

整個行程需要花費一些時間,需要耐心等待,當Terraform完成之后,將會有一些專案依舊在配置,即使在Kubernetes集群已經啟動之后,Windows節點將至少需要10分鐘來完全初始化,正常作業的Windows節點看起來類似于下面的終端輸出:

C:\Users\iamsuperman>docker ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS               NAMES
832ef7adaeca        rancher/rke-tools:v0.1.50            "pwsh -NoLogo -NonIn…"   10 minutes ago      Up 9 minutes                            nginx-proxy
7e75dffce642        rancher/hyperkube:v1.15.4-rancher1   "pwsh -NoLogo -NonIn…"   10 minutes ago      Up 10 minutes                           kubelet
e22b656e22e0        rancher/hyperkube:v1.15.4-rancher1   "pwsh -NoLogo -NonIn…"   10 minutes ago      Up 9 minutes                            kube-proxy
5a2a773f85ed        rancher/rke-tools:v0.1.50            "pwsh -NoLogo -NonIn…"   17 minutes ago      Up 17 minutes                           service-sidekick
603bf5a4f2bd        rancher/rancher-agent:v2.3.0         "pwsh -NoLogo -NonIn…"   24 minutes ago      Up 24 minutes                           gifted_poincare

Terraform將為新平臺輸出憑據,

Outputs:

lets-encrypt-email = [email protected]
lets-encrypt-environment = production
rancher-admin-password = {REDACTED}
rancher-domain-name = https://jvb-win-hybrid.eastus2.cloudapp.azure.com/
windows-admin-password = {REDACTED}

Part3:使用Windows作業負載

通過OS定位作業負載

因為Windows容器鏡像和Linux容器鏡像并不相同,我們需要使用Kubernetes節點的關聯性來確定我們的部署目標,每個節點都有OS標簽以幫助實作這一目的,

> kubectl get nodes
NAME           STATUS   ROLES          AGE     VERSION
control-0-vm   Ready    controlplane   16m     v1.15.4
etcd-0-vm      Ready    etcd           16m     v1.15.4
win-0-vm       Ready    worker         5m52s   v1.15.4
worker-0-vm    Ready    worker         12m     v1.15.4
> kubectl describe node worker-0-vm
Name:               worker-0-vm
Roles:              worker
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=worker-0-vm
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/worker=true
...
> kubectl describe node win-0-vm
Name:               win-0-vm
Roles:              worker
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=windows
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=win-0-vm
                    kubernetes.io/os=windows

由Rancher 2.3部署的集群會自動使用NoSchedule污染Linux worker節點,這意味著作業負載將始終流向Windows節點,除非特別調度了Linux節點并且配置為可容忍污染,

根據計劃使用集群的方式,您可能會發現,設定類似的Windows或Linux默認首選項可以在啟動作業負載時減少開銷,

歡迎添加微信助手(rancher2),進官方技術群,了解更多Kubernetes使用攻略

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

標籤:其他

上一篇:備戰雙 11!螞蟻金服萬級規模 K8s 集群管理系統如何設計?

下一篇:Linux Capabilities 入門教程:概念篇

標籤雲
其他(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