主頁 >  其他 > Linux云計算虛擬化-使用rancher搭建k8s集群并發布電商網站

Linux云計算虛擬化-使用rancher搭建k8s集群并發布電商網站

2021-01-02 10:50:46 其他

文章目錄

  • Linux云計算虛擬化-使用Rancher搭建k8s集群并使用lnmp架構發布電商網站
    • 1. Rancher介紹
    • 2. 使用Rancher搭建k8s集群
      • 2.1 實驗環境介紹
      • 2.2 在rancher主機上部署rancher平臺
        • 2.2.1 匯入docker鏡像(在線pull很慢)
        • 2.2.2 安裝rancher2.3.3
    • 3. 添加集群并為集群添加節點
      • 3.1 創建集群及添加master節點
      • 3.2 添加node到k8s集群
    • 4. 使用rancher自帶監控查看k8s集群運行狀態
    • 5. 分布式LNMP架構部署電商網站
      • 5.1 CoreDNS集群內部服務發現
      • 5.2 在rancher節點安裝并測驗kubectl
      • 5.3 在rancher節點上使用kubectl命令為node節點部署php服務
      • 5.4 部署nginx服務
      • 5.5 部署mysql
      • 5.6 ingress實時監聽apiserver
      • 5.7 安裝ecshop
    • 6. 總結

Linux云計算虛擬化-使用Rancher搭建k8s集群并使用lnmp架構發布電商網站

1. Rancher介紹

Rancher是一個開源容器管理平臺,可以幫助企業在生產環境中輕松快捷的部署和管理容器,Rancher可以輕松管理各個環境的kubernetes,滿足IT需求并為devops團隊提供支持,

k8s已經成為容器編排標準,也成為了各類云與虛擬化廠商提供的標準基礎架構,Rancher用戶可以選擇使用Rancher Kubernetes Engine(RKE)創建集群,也可以使用GKE`AKS\EKS`等云k8s服務,Rancher用戶還可以匯入和管理現有的k8s集群,

  • GKE:Google Kubernetes Engine, Google 的 k8s 托管服務
  • AKS:Azure Kubernetes 服務 (AKS) ,微軟的 k8s 托管服務
  • EKS:Amazon Elastic Container Service for Kubernetes ,Amazon 的 K8S 托管服務

Rancher為 DevOps 工程師提供了一個直觀的用戶界面來管理他們的服務容器,用戶不需要深入了解 Kubernetes 概念就可以開始使用 Rancher, Rancher 包含應用商店,支持一鍵式部署 Compose模板,

docker-compose 是 Docker 容器進行編排的工具,定義和運行多容器的應用,可以一條命令啟動多個容器,使用 docker-compose不再需要使用 shell 腳本來啟動容器,

docker-compose 默認的模板檔案是 docker-compose.yml,其中定義的每個服務都必須通過image 指令指定鏡像或 build 指令(需要 Dockerfile)來自動構建,

Rancher組成部分:

①基礎設施編排

  • Rancher可以使用任何公有云或者私有云的Linux主機資源,
  • Linux主機可以是虛擬機,也可以是物理機,
  • Rancher僅需要主機有CPU,記憶體,本地磁盤和網路資源,
  • 從Rancher的角度來說,一臺云廠商提供的云主機和一臺自己的物理機是一樣的,
  • Rancher為運行容器化的應用實作了一層靈活的基礎設施服務,Rancher的基礎設施服務包括網路, 存盤, 負載均衡, DNS和安全模塊,
  • Rancher的基礎設施服務也是通過容器部署的,所以同樣Rancher的基礎設施服務可以運行在任何Linux主機上,

②容器編排與調度

  • Rancher包含了當前全部主流的編排調度引擎,例如Docker Swarm,Kubernetes,和Mesos,
  • Rancher還支持自己的Cattle容器編排調度引擎,
  • Cattle被廣泛用于編排Rancher自己的基礎設施服務以及用于Swarm集群,Kubernetes集群和Mesos集群的配置,管理與升級,

③應用商店

  • Rancher的用戶可以在應用商店里一鍵部署由多個容器組成的應用,
  • 用戶可以管理這個部署的應用,并且可以在這個應用有新的可用版本時進行自動化的升級,
  • Rancher提供了一個由Rancher社區維護的應用商店,其中包括了一系列的流行應用,
  • Rancher的用戶也可以創建自己的私有應用商店,

④企業級權限管理

  • Rancher支持靈活的插件式的用戶認證,支持Active Directory,LDAP, Github等 認證方式,
  • Rancher支持在環境級別的基于角色的訪問控制 (RBAC),可以通過角色來配置某個用戶或者用戶組對開發環境或者生產環境的訪問權限,

Rancher的主要組件和功能:
在這里插入圖片描述

rancher官網https://rancher.com/ https://www.rancher.cn/
中文官方檔案https://docs.rancher.cn/rancher2/

2. 使用Rancher搭建k8s集群

2.1 實驗環境介紹

實驗拓撲圖:

在這里插入圖片描述

各主機介紹:

主機名IP地址系統版本作用
rancher192.168.43.175centos7.6rancher服務器
master192.168.43.245centos7.6k8s-master,計算服務器,Etcd , Control,Worker節點
node192.168.80.147centos7.6k8s-node,計算服務器

介紹一個小技巧:當某條指令需要在所有主機上執行,可以用xshell遠程連接上所有主機,然后選擇所有會話執行命令,這樣就不需要一臺一臺執行,

在這里插入圖片描述

以下內容所有主機都要操作:

# 所有主機都關閉防火墻
systemctl stop firewalld && systemctl disable firewalld

# 禁用selinx
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

# 卸載交換記憶體
swapoff -a
sed -i 's/.*swap.*/#&/g' /etc/fstab

# 修改主機名
hostnamectl set-hostname rancher
hostnamectl set-hostname master
hostnamectl set-hostname node

# 移除原先的yum源,安裝aliyun的centos7和epel源
# 這里視情況選擇是否執行
mv /etc/yum.repos.d/* /opt
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

所有主機安裝docker:

# 所有節點都安裝docker
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker19
# yum install docker-ce docker-ce-cli containerd.io -y【直接安裝會安裝docker20版本,在rancher中會導致創建集群失敗,】
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.el7.x86_64.rpm
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.9-3.el7.x86_64.rpm

# 啟動docker并加入到開機自啟
systemctl start docker && systemctl enable docker.service && systemctl status docker
# 配置docker鏡像加速器,加快pull鏡像到本地的速度
tee /etc/docker/daemon.json << EOF
{
 "registry-mirrors":["http://e9yneuy4.mirror.aliyuncs.com"]
}
EOF
# 重新加載daemon組態檔
systemctl daemon-reload && systemctl restart docker

在這里插入圖片描述

2.2 在rancher主機上部署rancher平臺

2.2.1 匯入docker鏡像(在線pull很慢)

上傳已打包好的鏡像:

在這里插入圖片描述

[root@rancher ~]# tar tvf rancher-images-v3.tar.gz 
-rw-r--r-- root/root 150685111 2020-08-12 18:23 mysql-5.7.tar.gz
-rw-r--r-- root/root 172848467 2020-08-12 18:23 nginx-v1.tar.gz
-rw-r--r-- root/root 183240787 2020-08-12 18:23 php-v1.tar.gz
-rw-r--r-- root/root  14780430 2020-08-12 18:23 rancher-cluster-proportional-autoscaler.tar.gz
-rw-r--r-- root/root  13959239 2020-08-12 18:23 rancher-coredns-coredns.tar.gz
-rw-r--r-- root/root   1515346 2020-08-12 18:23 rancher-coreos-configmap-reload.tar.gz
-rw-r--r-- root/root  16664098 2020-08-12 18:23 rancher-coreos-etcd.tar.gz
-rw-r--r-- root/root  16598580 2020-08-12 18:23 rancher-coreos-flannel.tar.gz
-rw-r--r-- root/root  10472412 2020-08-12 18:23 rancher-coreos-kube-state-metrics.tar.gz
-rw-r--r-- root/root   7038145 2020-08-12 18:23 rancher-coreos-prometheus-config-reloader.tar.gz
-rw-r--r-- root/root  11748765 2020-08-12 18:23 rancher-coreos-prometheus-operator.tar.gz
-rw-r--r-- root/root  17171689 2020-08-12 18:23 rancher-flannel-cni.tar.gz
-rw-r--r-- root/root  92944055 2020-08-12 18:23 rancher-grafana-grafana.tar.gz
-rw-r--r-- root/root 348205574 2020-08-12 18:24 rancher-hyperkube.tar.gz
-rw-r--r-- root/root 113656038 2020-08-12 18:24 rancher-istio-kubectl.tar.gz
-rw-r--r-- root/root  51893585 2020-08-12 18:24 rancher-kube-api-auth.tar.gz
-rw-r--r-- root/root  10424721 2020-08-12 18:24 rancher-metrics-server.tar.gz
-rw-r--r-- root/root   1961881 2020-08-12 18:24 rancher-nginx-ingress-controller-defaultbackend.tar.gz
-rw-r--r-- root/root 198527282 2020-08-12 18:24 rancher-nginx-ingress-controller.tar.gz
-rw-r--r-- root/root   8374715 2020-08-12 18:24 rancher-nginx.tar.gz
-rw-r--r-- root/root    314865 2020-08-12 18:24 rancher-pause.tar.gz
-rw-r--r-- root/root  14874140 2020-08-12 18:24 rancher-prometheus-auth.tar.gz
-rw-r--r-- root/root   9886017 2020-08-12 18:24 rancher-prom-node-exporter.tar.gz
-rw-r--r-- root/root  50643846 2020-08-12 18:24 rancher-prom-prometheus.tar.gz
-rw-r--r-- root/root 105062799 2020-08-12 18:24 rancher-rancher-agent.tar.gz
-rw-r--r-- root/root 246843572 2020-08-12 18:24 rancher-rancher.v2.3.3.tar.gz
-rw-r--r-- root/root  46993317 2020-08-12 18:24 rancher-rke-tools.v0.1.51.tar.gz
-rw-r--r-- root/root  47003155 2020-08-12 18:24 rancher-rke-tools.v0.1.56.tar.gz

拷貝到所有節點,并使用docker加載鏡像:

# 拷貝鏡像到所有節點
[root@rancher ~]# tar xf rancher-images-v3.tar.gz -C /opt/
[root@rancher ~]# scp /opt/*.tar.gz root@192.168.43.245:/opt/
[root@rancher ~]# scp /opt/*.tar.gz root@192.168.43.147:/opt/

# 使用sed -r批量創建docker load陳述句
[root@rancher ~]# ll /opt/*.tar.gz|awk '{print $NF}'|sed -r 's#(.*)#docker load -i \1#'
docker load -i /opt/mysql-5.7.tar.gz
docker load -i /opt/nginx-v1.tar.gz
docker load -i /opt/php-v1.tar.gz
docker load -i /opt/rancher-cluster-proportional-autoscaler.tar.gz
docker load -i /opt/rancher-coredns-coredns.tar.gz
docker load -i /opt/rancher-coreos-configmap-reload.tar.gz
docker load -i /opt/rancher-coreos-etcd.tar.gz
docker load -i /opt/rancher-coreos-flannel.tar.gz
docker load -i /opt/rancher-coreos-kube-state-metrics.tar.gz
docker load -i /opt/rancher-coreos-prometheus-config-reloader.tar.gz
docker load -i /opt/rancher-coreos-prometheus-operator.tar.gz
docker load -i /opt/rancher-flannel-cni.tar.gz
docker load -i /opt/rancher-grafana-grafana.tar.gz
docker load -i /opt/rancher-hyperkube.tar.gz
docker load -i /opt/rancher-istio-kubectl.tar.gz
docker load -i /opt/rancher-kube-api-auth.tar.gz
docker load -i /opt/rancher-metrics-server.tar.gz
docker load -i /opt/rancher-nginx-ingress-controller-defaultbackend.tar.gz
docker load -i /opt/rancher-nginx-ingress-controller.tar.gz
docker load -i /opt/rancher-nginx.tar.gz
docker load -i /opt/rancher-pause.tar.gz
docker load -i /opt/rancher-prometheus-auth.tar.gz
docker load -i /opt/rancher-prom-node-exporter.tar.gz
docker load -i /opt/rancher-prom-prometheus.tar.gz
docker load -i /opt/rancher-rancher-agent.tar.gz
docker load -i /opt/rancher-rancher.v2.3.3.tar.gz
docker load -i /opt/rancher-rke-tools.v0.1.51.tar.gz
docker load -i /opt/rancher-rke-tools.v0.1.56.tar.gz
# 批量匯入鏡像,在所有節點都要匯入,
[root@rancher ~]# ll /opt/*.tar.gz|awk '{print $NF}'|sed -r 's#(.*)#docker load -i \1#' |bash
[root@master ~]# ll /opt/*.tar.gz|awk '{print $NF}'|sed -r 's#(.*)#docker load -i \1#' |bash
[root@node ~]# ll /opt/*.tar.gz|awk '{print $NF}'|sed -r 's#(.*)#docker load -i \1#' |bash

2.2.2 安裝rancher2.3.3

目前最新版本是rancher2.5.3,可以單獨pull最新版的rancher鏡像替換2.3.3

# 使用鏡像rancher/rancher:v2.3.3創建容器
[root@rancher ~]# sudo docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 -v/var/lib/rancher/:/var/lib/rancher/ rancher/rancher:v2.3.3
66c866de813f5d4284098d626fefc192994f95bea694fbcf162a540494273cda
[root@rancher ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND           CREATED          STATUS          PORTS                                      NAMES
66c866de813f   rancher/rancher:v2.3.3   "entrypoint.sh"   56 seconds ago   Up 47 seconds   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   sad_hopper

輸入網址https://192.168.43.175/

①設定登錄密碼:

在這里插入圖片描述

②詢問這個URL是否可以被所有節點訪問,確認可以就好,
在這里插入圖片描述

③設定中文界面
在這里插入圖片描述

④注銷重新登錄https://192.168.43.175/login
在這里插入圖片描述

3. 添加集群并為集群添加節點

3.1 創建集群及添加master節點

①創建集群:
在這里插入圖片描述

②自定義創建k8s集群:
在這里插入圖片描述

③設定集群名稱和網路驅動:
在這里插入圖片描述
在這里插入圖片描述
④配置master節點:
在這里插入圖片描述

# 創建k8s集群的master節點,即使用鏡像運行一個容器作為master節點
[root@master ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.3.3 --server https://192.168.43.175 --token q448457pthn8zzvkplxpwkrsn8ddjm8wzrspl54wgjl6m2d65zgw54 --ca-checksum 638d9803e912eceb52d2246f61179802ccfb4b97a526b25ba37da78e78f19cf6 --etcd --controlplane --worker
dea4bf2d798ccc25db021d5d6e3635f28a3938d5cc6187cd7b24b9f54b2fec8d

在這里插入圖片描述

點擊“完成”即可,

⑤查看k8s集群創建進度,大概幾分鐘就能安裝好,【鏡像在本地,不用pull的情況下】
在這里插入圖片描述
在這里插入圖片描述
看到“Active”就表明k8s集群已經安裝成功了,

# 如果遇到報錯,可能是master節點之前安裝過k8s導致的,可以先把原來安裝的k8s先刪掉,再執行上述操作,
# 如果遇到pull有問題,可能是pull太慢導致的,可以考慮先pull到本地,然后使用本地鏡像,
# 可以通過查看k8s的日志和docker容器的日志查看安裝情況:
docker logs 容器名              # docker容器日志
tail -100 /var/log/messages    # k8s日志

⑥查看下集群和各節點情況:
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

3.2 添加node到k8s集群

①編輯集群:
在這里插入圖片描述

②選擇worker角色,在對應的節點上添加:
在這里插入圖片描述

# 在node上運行
[root@node ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.3.3 --server https://192.168.43.175 --token mw776bmzz99wqtfxx2l8pm9rngzlmdfc8772kcl88htvcfjw5xzxwp --ca-checksum c2f26cf0411c030a7e3b71c92667505e083c568eb2a44cc6365cf8b42ed72df8 --worker

在這里插入圖片描述
③查看集群添加節點情況:
在這里插入圖片描述
在這里插入圖片描述
可以看到,node節點也添加進k8s集群中了,

4. 使用rancher自帶監控查看k8s集群運行狀態

①點擊“啟用監控并查看實時監控指標”
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
②等待安裝grafana組件,可視化監控資料
看到下圖就算安裝成功了:
在這里插入圖片描述
④查看grafana監控資料
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
⑤可以選擇監控哪個節點
在這里插入圖片描述
以上內容就是集群的創建及集群各指標的監控,

5. 分布式LNMP架構部署電商網站

5.1 CoreDNS集群內部服務發現

  • CoreDNS,從kubernetes1.2開始成為了k8s的默認DNS服務器,

  • kubeadm安裝的k8s集群,默認裝有CoreDNS,使用命令kubeadm init --feature-gates=CoreDNS=true啟用即可,

  • kubernetes集群中,直接訪問service name,然后通過CoreDNS域名決議服務找到集群IP

  • 在rancher環境中已經安裝了CoreDNS服務,無需重復安裝,

5.2 在rancher節點安裝并測驗kubectl

①安裝kubectl

# 配置kubernetes的yum源
[root@rancher ~]# tee /etc/yum.repos.d/kubernetes.repo << 'EOF'
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
[root@rancher ~]# yum install -y kubectl

②創建kubectl組態檔
在這里插入圖片描述

# 將設定保存到~/.kube/config
# 然后下載kubectl(如有需要)并運行,
apiVersion: v1
kind: Config
clusters:
- name: "lnmp-ecshop"
  cluster:
    server: "https://192.168.43.175/k8s/clusters/c-g644f"
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM3akNDQ\
      WRhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFvTVJJd0VBWURWUVFLRXdsMGFHVXQKY\
      21GdVkyZ3hFakFRQmdOVkJBTVRDV05oZEhSc1pTMWpZVEFlRncweU1ERXlNekV4TURVNE5EaGFGd\
      zB6TURFeQpNamt4TURVNE5EaGFNQ2d4RWpBUUJnTlZCQW9UQ1hSb1pTMXlZVzVqYURFU01CQUdBM\
      VVFQXhNSlkyRjBkR3hsCkxXTmhNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ\
      0tDQVFFQTBuckNaOUZmakorRUl5QlcKQlZBL21jT2JuL2RZSHZxY0pyT200NHZSSmsybTVGZHFWW\
      nV1M1pUMXo5YkltK2svdkRTemkwZGI3OUhiUjREbwp4SC9lUTFtWDdEemNuWE9GZ084SnpMbEZkM\
      Gl1V21rdXdGNDBFbDRhT3pseGdlcHVDU1RkMW1YdVBmUjlWWHNHCkYxaTgxNEorOVVFRXdaa0V4d\
      m1odDJ6aDhYYnpYOWpldTVwbTNjak9LVWRKVk50RXhac2U3My90cDNnMnFiUk8KTVpqN0hBbVpOZ\
      ldNL1VlZVQ0S0RDTk53bXFxREh3em1TU1FRYW1aMDI3Y1JmVWxVZktYYjFSUlpNNEN5eGg4aQpBa\
      GJYMHUwK3k4WlZiRVFhTXZzbW9vRzNobFdMZHNBbHBrc0tQYmUwczcrOFJIWS9zdEdiQjlQa1E2N\
      0ZxbHNmCkIvdXhwUUlEQVFBQm95TXdJVEFPQmdOVkhROEJBZjhFQkFNQ0FxUXdEd1lEVlIwVEFRS\
      C9CQVV3QXdFQi96QU4KQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBbm1FVGM4MGFpSUhXUm5OMmZ6Y\
      2dzY3BRYVNsano1T1k5UlZEVTVZbQpKd0ROSXhVRUJBL2lmWERhc0ViRHZvWFFtckhJaXNEb1N1e\
      DFKS0o3VCs3N1l1RklEeGRQMGtQUGkrT0Jnc0JCCmM3TlRoN2J5S2hrQjNVdWpqdXU2WUhCeXpKZ\
      k9jZjJRM1BGYlZ3YkIwd0hjRGdFaUZZc015NkIyNXdnUzFRYlcKaGNEaTNuMXdyeVRJK2VBUzQ5Q\
      jB6VHRYcG96MHAwaGt0bVpZSDVlb2NTUnhiZXJubFBNcE43M2dlR1Z6TG9NKwpIV3dFSkdVenZFU\
      EV0MVlwRS93RFhMeTZ4bDhJQ0RRK0dZdldpclpia1hsK2h5S21RMTk3bkF4dXNKL1VidHdICkJjb\
      ExoTFJaMWJML0V5MHZPenk0dWZKS29TaVBRcGREY0cwcFpzWGRyTHlBK1E9PQotLS0tLUVORCBDR\
      VJUSUZJQ0FURS0tLS0t"
- name: "lnmp-ecshop-master"
  cluster:
    server: "https://192.168.43.245:6443"
    certificate-authority-data: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3akNDQ\
      WFxZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKT\
      FdOaE1CNFhEVEl3TVRJek1URXhNRGd6TWxvWERUTXdNVEl5T1RFeE1EZ3pNbG93RWpFUU1BNEdBM\
      VVFQXhNSAphM1ZpWlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ\
      0VCQU5yN3gyMmJYNHpOCndVV3F3YVh6RVIzODIxSjZTR1JEQUpCUDlxZ2VlcGUvU3MrU0VlcW5mR\
      HJ5bmRjU09INUhLQ2NqOCtQa0ZmaEgKMURib3k1QXZ1WE5lY05RRitTSHZmbE9oVjZuTmUxTnZ0Z\
      0FaNW9JRmFOODM1NDNNaE92U0pPSUhONXJIRXhoVwp2SWQ0azFLbkx4Q08zUC9BVldCR0xJZjIxR\
      GlhTzZFbUxwNGV3dEo4ekRSZ2ZsS3BXOEQxYS8xZmg0amVsU2tQCldmeGM2T0lBRjBpbzZWNXVCe\
      nYxTVJEWWttWFY3UVlLSWxBQVM0aFVodzVrL0owVVNjTzYxbHl0ZGVMd29zTXYKLzg4NlVPYjA2U\
      kFNRVc1d0FOMTJOenFVbTdhUnRXUHRLSkF4ZlJ6blZJMjBxTzk0bzNvcGZvZFUweVJKajFkcgpwd\
      lBZYzNqSFpkc0NBd0VBQWFNak1DRXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01BOEdBMVVkRXdFQi93U\
      UZNQU1CCkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQlAwaXRnSWFDdXhtQnZXYSs4UkJEM\
      2ZqUTRHUGRFVWVMRUcKT0J1dHRDS0tzUWQrV1FiNXRsQ0x3VXlRY1JaVm0rbmNqNkI2dWxuZG5PN\
      1VKWndnMS9CVmxsams2eDYxYnBCTgpsZkNpd1Y5RXZKcWJCeG5YTGdaOWJuaXRWaURZNmx6SUtlU\
      ndxMW1ZMkNJVVA5TGVPSUdXdlhwWnRXSDdrOGFWCmlHZXdSczlEdjFrMzVOMy9ObFFub3JsY1c4c\
      WlwUk02UkQwdnJFM2tVTGcwT09iVUdWV2g3S0Q3M3RYNWJuNHMKNVFaRytibGtmZ3VPTEpWdWYyL\
      2tJVm9nQ0plU3RMaCtuS2ZUd2RHcWxDMUl3WWdITE85aUd0SzQ2d2tlTzdkTwp6WitDckwwcTJCK\
      1J4TUEyNUErazNQVy9YOHRhWS8zcFFJcVY5cjJDV0w2ZHRBc1JkNjA9Ci0tLS0tRU5EIENFUlRJR\
      klDQVRFLS0tLS0K"

users:
- name: "lnmp-ecshop"
  user:
    token: "kubeconfig-user-2vp8p.c-g644f:g5xhgj4dbpht58gmlrcrfbmvvmg8qc59mf5f47ckvxh9cnpmkbtmbz"

contexts:
- name: "lnmp-ecshop"
  context:
    user: "lnmp-ecshop"
    cluster: "lnmp-ecshop"
- name: "lnmp-ecshop-master"
  context:
    user: "lnmp-ecshop"
    cluster: "lnmp-ecshop-master"

current-context: "lnmp-ecshop"

③將組態檔剪切到rancher節點中

[root@rancher ~]# mkdir ~/.kube
[root@rancher ~]# vim ~/.kube/config

④測驗kubectl命令

[root@rancher ~]# kubectl get node
NAME     STATUS   ROLES                      AGE   VERSION
master   Ready    controlplane,etcd,worker   60m   v1.16.8
node     Ready    worker                     40m   v1.16.8

5.3 在rancher節點上使用kubectl命令為node節點部署php服務

# 上傳yaml資源檔案和ecshop的安裝包
[root@rancher ~]# tar tvf lnmp-v5.tar.gz 
drwxr-xr-x root/root         0 2020-08-10 11:57 lnmp/
drwxr-xr-x root/root         0 2020-08-04 15:37 lnmp/conf/
-rw-r--r-- root/root      1437 2020-08-04 15:37 lnmp/conf/nginx.conf
drwxr-xr-x root/root         0 2020-07-31 11:11 lnmp/php/
-rw-r--r-- root/root       434 2020-07-28 16:08 lnmp/php/Dockerfile
drwxr-xr-x root/root         0 2020-08-05 11:48 lnmp/nginx/
-rw-r--r-- root/root       281 2020-07-31 14:17 lnmp/nginx/Dockerfile
-rw-r--r-- root/root  65163191 2019-04-18 16:03 lnmp/ecshop.zip
-rw-r--r-- root/root       727 2020-08-04 13:56 lnmp/php-deployment.yaml
-rw-r--r-- root/root       149 2020-08-04 14:10 lnmp/php-svc.yaml
-rw-r--r-- root/root       212 2020-08-04 15:26 lnmp/nginx-svc.yaml
-rw-r--r-- root/root       779 2020-08-04 15:26 lnmp/nginx-deployment.yaml
-rw-r--r-- root/root       202 2020-08-04 15:44 lnmp/mysql-svc.yaml
-rw-r--r-- root/root       739 2020-08-10 11:50 lnmp/mysql-deployment.yaml
[root@rancher ~]# tar xf lnmp-v5.tar.gz 
[root@rancher ~]# ll /root/lnmp/
總用量 63660
drwxr-xr-x 2 root root       24 8月   4 15:37 conf
-rw-r--r-- 1 root root 65163191 4月  18 2019 ecshop.zip
-rw-r--r-- 1 root root      739 8月  10 11:50 mysql-deployment.yaml
-rw-r--r-- 1 root root      202 8月   4 15:44 mysql-svc.yaml
drwxr-xr-x 2 root root       24 8月   5 11:48 nginx
-rw-r--r-- 1 root root      779 8月   4 15:26 nginx-deployment.yaml
-rw-r--r-- 1 root root      212 8月   4 15:26 nginx-svc.yaml
drwxr-xr-x 2 root root       24 7月  31 11:11 php
-rw-r--r-- 1 root root      727 8月   4 13:56 php-deployment.yaml
-rw-r--r-- 1 root root      149 8月   4 14:10 php-svc.yaml

①編輯deploy和pod的yaml資源組態檔

[root@rancher ~]# cat /root/lnmp/php-deployment.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-server
  labels:
    name: php-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: php-server
  template:
    metadata:
      labels:
        app: php-server
    spec:
      nodeSelector:
        kubernetes.io/hostname: master   # 修改這里即可
      containers:
      - name: php-server
        image: php:v1    # 可以使用docker images命令查看該鏡像有沒有
        volumeMounts:
        - mountPath: /var/www/html/
          name: nginx-data
        ports:
        - containerPort: 9000
        lifecycle:
          postStart:
            exec:
              command: [ "/bin/bash","-c","chown apache:apache /var/www/html -R" ]
      volumes:
      - name: nginx-data
        hostPath:
          path: /web/html

②在node節點上配置ecshop資料檔案

[root@rancher ~]# scp /root/lnmp/ecshop.zip root@192.168.43.147:/root/

[root@node ~]# unzip ecshop.zip
[root@node ~]# mkdir -p /web/{html,data}
[root@node ~]# mv ecshop/* /web/html/
[root@node ~]# ls /web/html/
activity.php          certi.php              htaccess.txt   respond.php
admin                 chinabank_receive.php  images         robots.txt
affiche.php           comment.php            includes       search.php
affiliate.php         compare.php            index.php      sitemaps.php
alipay.html           cycle_image.php        install        snatch.php
animated_favicon.gif  data                   js             tag_cloud.php
api                   demo                   languages      temp
api.php               ecmoban_qq             message.php    themes
article_cat.php       exchange.php           mobile         topic.php
article.php           favicon.ico            myship.php     user.php
auction.php           feed.php               package.php    vote.php
brand.php             flow.php               pick_out.php   wap
captcha.php           gallery.php            pm.php         wholesale.php
catalog.php           goods.php              quotation.php  widget
category.php          goods_script.php       receive.php
cert                  group_buy.php          region.php


[root@rancher ~]# kubectl apply -f /root/lnmp/php-deployment.yaml
deployment.apps/php-server created
[root@rancher ~]# kubectl get deploy
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
php-server   1/1     1            1           16s
[root@rancher ~]# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
php-server-5c7759b5f8-wrnmg   1/1     Running   0          25s

node節點上,查看/web/html資料檔案是否可寫,并且屬主和屬組都變為了id,而不是用戶名,
在這里插入圖片描述
③創建service的資源組態檔

[root@rancher ~]# cat /root/lnmp/php-svc.yaml
---
apiVersion: v1
kind: Service
metadata:
  name: php
spec:
  ports:
  - name: php
    port: 9000
    protocol: TCP
  selector:
    app: php-server

[root@rancher ~]# kubectl apply -f /root/lnmp/php-svc.yaml 
service/php created

[root@rancher ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.43.0.1     <none>        443/TCP    113m
php          ClusterIP   10.43.70.88   <none>        9000/TCP   17s

5.4 部署nginx服務

①查看nginx組態檔的模板

[root@rancher ~]# cat /root/lnmp/conf/nginx.conf 
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        location / {
            index index.php;
        }
        location ~ \.php$ {
        #   root           html;
            fastcgi_pass   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
            include        fastcgi_params;
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}
  • nginx 的站點根目錄是/usr/share/nginx/html
  • php的決議目錄是/var/www/html/
  • fastcgi_pass 指定后端 php 決議地址時只需要指定 php-svc的名稱

②使用ConfigMap創建nginx組態檔
ConfigMap 是 k8s 中非常重要的一個資源物件,簡稱 cm,常用于向容器中注入組態檔等操作,不僅可以保存單個屬性值,也可以保存整個組態檔,

[root@rancher ~]# kubectl create configmap lnmp-nginx-config --from-file=/root/lnmp/conf/nginx.conf
configmap/lnmp-nginx-config created

③創建nginx-deployment檔案并部署nginx

[root@rancher ~]# cat /root/lnmp/nginx-deployment.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-shop
spec:
  selector:
    matchLabels:
      app: nginx-shop
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-shop
    spec:
      nodeSelector:
        kubernetes.io/hostname: node
      containers:
      - name: nginx-shop
        image: nginx:v1
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        volumeMounts:
        - name: nginx-data
          mountPath: /usr/share/nginx/html
        - name: nginx-conf
          mountPath: /etc/nginx/nginx.conf
          subPath: nginx.conf
      volumes:
      - name: nginx-data
        hostPath:
          path: /web/html/
      - name: nginx-conf
        configMap:
          name: lnmp-nginx-config
[root@rancher ~]# kubectl apply -f /root/lnmp/nginx-deployment.yaml 
deployment.apps/nginx-shop created
[root@rancher ~]# kubectl get deploy
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
nginx-shop   1/1     1            1           111s
php-server   1/1     1            1           17m
[root@rancher ~]# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
nginx-shop-6bd98dfd4d-9t6xv   1/1     Running   0          118s
php-server-5c7759b5f8-wrnmg   1/1     Running   0          17m

④創建nginx-svc檔案,并部署service

[root@rancher ~]# cat /root/lnmp/nginx-svc.yaml 
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-shop
spec:
  type: NodePort
  ports:
  - name: nginx
    port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30010
  selector:
    app: nginx-shop
[root@rancher ~]# kubectl apply -f /root/lnmp/nginx-svc.yaml 
service/nginx-shop created
[root@rancher ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP        124m
nginx-shop   NodePort    10.43.145.215   <none>        80:30010/TCP   16s
php          ClusterIP   10.43.70.88     <none>        9000/TCP       10m

可以測驗下php決議有沒有問題:
http://192.168.43.147:30010/
在這里插入圖片描述
看到以上內容,說明nginx服務已經正確部署,并可以正確決議php,

5.5 部署mysql

①部署deployment和pods

[root@rancher ~]# cat /root/lnmp/mysql-deployment.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: default
  labels:
    k8s-app: mysql
spec:
  selector: 
    matchLabels:
      k8s-app: mysql
  replicas: 1
  template:
    metadata:
      labels:
        k8s-app: mysql
    spec:
      nodeSelector:
        kubernetes.io/hostname: node   # 部署節點
      containers:
      - name: mysql
        image: mysql:5.7     # mysql鏡像
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306    # 容器埠號
          protocol: TCP
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
        env:
          - name: MYSQL_ROOT_PASSWORD
            value: "123456"     # root用戶密碼
      volumes:
      - name: mysql-data
        hostPath:
          path: /web/data/     # 資料目錄
[root@rancher ~]# kubectl apply -f /root/lnmp/mysql-deployment.yaml 
deployment.apps/mysql created
[root@rancher ~]# kubectl get deploy
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
mysql        1/1     1            1           105s
nginx-shop   1/1     1            1           12m
php-server   1/1     1            1           27m
[root@rancher ~]# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
mysql-57595b8f98-f2lnl        1/1     Running   0          109s
nginx-shop-6bd98dfd4d-9t6xv   1/1     Running   0          12m
php-server-5c7759b5f8-wrnmg   1/1     Running   0          27m

②部署service

[root@rancher ~]# cat /root/lnmp/mysql-svc.yaml 
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels:
    k8s-app: mysql
spec:
  ports:
  - name: mysql
    port: 3306
    protocol: TCP
    targetPort: 3306
  selector:
    k8s-app: mysql
[root@rancher ~]# kubectl apply -f /root/lnmp/mysql-svc.yaml 
service/mysql created
[root@rancher ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP        134m
mysql        ClusterIP   10.43.25.213    <none>        3306/TCP       15s
nginx-shop   NodePort    10.43.145.215   <none>        80:30010/TCP   10m
php          ClusterIP   10.43.70.88     <none>        9000/TCP       20m

5.6 ingress實時監聽apiserver

  • 發布服務是通過反向代理實作的,即nginx反向代理k8s中的服務,但是nginx并不能實時監測后端pod的變化,若修改了后端服務,需手動修改nginx配置,
  • 對于ingress,擁有一個監聽器,可以通過監聽kube-apiserver來感知后端service和pod的變化,然后根據ingress的配置將后端資訊更新給nginx做反向代理,
  • 邊緣節點:k8s中對外提供服務的節點,如果k8s集群中每一臺主機都擁有公網IP,那所有的都是邊緣節點,
  • ingress作業原理:發布服務時,將域名決議到集群邊緣節點,然后ingress匹配域名規則,將請求轉發至相應的服務,
  • 在rancher中,自帶服務發布功能,是通過nginx實作 ,建議使用Traefik

①添加規則
在這里插入圖片描述
填寫規則名稱->自定義域名->填寫域名

在這里插入圖片描述
添加服務->服務選擇“nginx-shop”->埠(服務名)選擇“nginx”
在這里插入圖片描述
在這里插入圖片描述

5.7 安裝ecshop

①配置域名決議:
在本地配置域名與IP對應關系:
C:\Windows\System32\drivers\etc
在這里插入圖片描述

# 用notepad++打開,記事本打開應該保存不了
# 在hosts檔案末尾加上這句
192.168.43.147       shop.com

②安裝ecshop
輸入網址http://shop.com
谷歌應該打不開,要用火狐,
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
③打開首頁及后臺:
首頁http://shop.com/
在這里插入圖片描述
后臺http://shop.com/admin/privilege.php?act=login
在這里插入圖片描述

6. 總結

  1. docker裝的是19版本,鏡像倉庫用的是aliyun的,加快pull速度,
  2. 在線pull安裝rancher的速度非常慢,建議先pull需要的鏡像,保存到本地,
  3. 如果所有的鏡像都有,那創建k8s集群是很快的,如果5分鐘還沒搞定,可能是因為有的鏡像沒有,docker在線pull中,
  4. 如果所有的鏡像都有,但還是報錯,可能是裝rancher、master、node的主機之前裝過k8s,要把之前的檔案洗掉干凈,還原也可以,
  5. 部署php、nginx、mysql的方法差不多,都是先部署deployment和pod,再部署service
  6. 把ecshop的網頁資料放到呼叫的位置即可,本文放到node節點上的/web/html目錄,而mysql資料的存放位置在node節點的/web/data目錄下,
  7. 通過ingress添加規則,將域名決議到邊緣節點,然后外部用戶就可以通過域名訪問k8s集群中的服務,

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

標籤:其他

上一篇:C語言編程>第十周 ⑤ 學生的記錄由學號和成績組成,M名學生的資料已在主函式中放入結構體陣列stu中,請撰寫函式fun,它的功能是:函式回傳指定學號的學生資料,指定的學號在主函式中輸入。

下一篇:計算機網路-網路層筆記

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