無面者小站
  • AWS
  • Azure
  • CCNA
  • CICD
  • GCP
  • git
  • K8S
  • linux
  • Node.js
  • secure
  • 網頁前端
  • 更多

無面者小站

March 10, 2024

adduser 和 useradd 的差異

adduser 和 useradd 的差異: adduser 用法 sudo adduser [選項] 用戶名 # 無選項添加新用戶: 會提示您輸入用戶的密碼和其他信息。 sudo adduser 用戶名 # 添加系統用戶: 這將添加一個沒有家目錄
March 10, 2024

java的打包筆記1

Java 直接打包成 jar 假定我們有個 hello.java # 把檔案編譯成 hello.class javac hello.java # 把 hello.class 轉換成 hello.jar,-c 代表建立 jar 檔案,-f 代表指定檔案名稱。 jar -cf hello.jar hello.class #或者 jar -cf
March 9, 2024

linux常用解壓縮指令

tar 假定我們有個目錄稱為 ./my 壓縮 # 壓縮 tar -czvf my.tar.gz ./my # 單純歸檔 tar -cvf my.tar ./my c:建立一個新的歸檔檔案。 z:使用 gzip 壓縮。 v:顯示執行過程中的詳細資訊(verb
March 9, 2024

iptables筆記-1

iptables 是什麼? iptables 是 Linux 內核中的防火牆軟體 netfilter 的管理工具,位於使用者空間,同時也是 netfilter 的一部分。 Netfilter 位於內核空間,不僅有網路地址轉換的功能,也具備資料包內
March 4, 2024

Jenkins的docker-compose容器

Jenkins 的參考 YAML 以下 Docker compose 應對到 80 port。 docker-compose.yaml version: '3.3' services: jenkins: image: jenkins/jenkins:lts restart: unless-stopped privileged: true user: root ports: - 80:8080 container_name: jenkins volumes: - ./jenkins/data:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/local/bin/docker:/usr/local/bin/docker 連入容器的方法 docker exec jenkins bash
February 23, 2024

Linux Service小筆記

Service 啟動與關閉 Service 可以用在希望開機時自動運作一組程式或者 Bash 腳本,可以自動的啟動或者關閉一連串流程,甚至可以在程式崩潰時重啟。 這類操作由指令 service 與 systemctl
February 19, 2024

K8S基本操作-52-K8S 一些 CKA 的小筆記

查詢 CIDR CIDR 分配儲存在 API Server 上: cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep range CNI Plugin 配置文件位置 CNI Plugin 配置文件位置在以下位置: /etc/cni/net.d/ 例如: /etc/cni/net.d/10-weave.conflist 列出所有資源名稱 如: pod, deployment, configmap。 kubectl api-resources --namespaced
February 17, 2024

K8S基本操作-52-kubectl 操作備忘

Kubectl 自動補全 # 自動補全腳本 source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ~/.bashrc # 把 kubectl 簡化成 k alias k=kubectl complete -o default -F __start_kubectl k –all-namespaces 替代 kubectl -A 建立物件 kubectl apply -f ./my-manifest.yaml # 建立資源 kubectl apply -f ./my1.yaml -f ./my2.yaml # 建立資源從多個
February 17, 2024

K8S基本操作-51-K8S kubectl 參數簡寫

操作簡寫 例如: kubectl get pod pod1 可以寫成 kubectl get po pod1 以下是常用簡寫: certificates = cert, certs certificiaterequests = cr, crs certificatesigningrequests = csr componentstatuses = cs configmaps = cm cronjobs = cj customresourcedefinitions = crd, crds daemonsets = ds deployments = deploy endpoints = ep events = ev horizontalpodautoscalers = hpa ingresses = ing limitranges
February 16, 2024

K8S基本操作-50-K8S Ingress

Ingress 一句話說 Ingress 就是用不同的 Path 導向不同 Service 的功能。 如我們有2個頁面,一個是網站一個是 API ,分別屬於不同 K8S Service 。 Ingress 可以讓兩個 Service 用以下方式存取: # Web Service 存取
February 15, 2024

K8S基本操作-49-K8S內部的DNS與Port

K8S 各種服務使用的 Port ETCD: 2379,2380 port Kube-API: 6443 port Kubelete: 10250 port Kube-scheduler: 10259 port Kube-controller-manager: 10257 port 各種 Service 的內部 IP: 30000 - 32767 port K8S Service 中的 DNS 如果有個 Service 如下: Service Name: web-service Namespace: default 這樣就能用以下三個 URL 來存取 Service: # 同 Namespace
February 15, 2024

K8S基本操作-48-K8S與容器網路介面(Container Network Interface)

Container Network Interface 容器網路介面 K8S 的 CNI 是指容器網路介面(Container Network Interface),它是一個標準的 API,用於讓 K8S 與不同的網路插件溝通,實現
February 15, 2024

K8S基本操作-47-K8S 多節點分次更新

節點列表 假定我們有以下兩節點: controlplane node01 更新 Control Plane 主節點 假定我們要更新的目標版本是 1.27.0 ,如果要更新別的版本請手動修改以下版本 排空 controlplane 節點: kubectl drain controlplane --ignore-daemonsets 然後執
February 8, 2024

Linux網路基本指令1

ip 類網路指令 以下指令僅在重新啟動前生效,如果要長期保存,需要根據各 Linux 發行版不同實踐調整設定檔案。 # 列出介面 ip link # 查詢個別網卡的資訊 ip addr show eth0 ip
February 8, 2024

K8S基本操作-46-關於儲存與 Volume

K8S 使用的儲存與網路介面 K8S 提供了三種開放的接口規範,分別是 CRI、CNI 和 CSI,用於對接不同的後端,實現計算、網路和存儲資源的管理。 只要符合
February 8, 2024

關於Docker的Image閒談1

Docker 的 Volume 與 Image 的具體儲存位置 實際上 Volume 與 Image 在 Linux 上儲存在以下目錄: /var/lib/docker/ /var/lib/docker/containers /var/lib/docker/image /var/lib/docker/volumes 雖然不建議,但純手動來複製 Image 也是可能的。 Docker 或者其他容器技術的 Layer 結構 以下是個
February 7, 2024

K8S基本操作-45-Kubectx 和 Kubens

Kubectx 和 Kubens 是兩個用於簡化 Kubernetes 集群管理的命令行工具。 Kubectx 允許您快速在不同的 Kubernetes 集群和命名空間之間切換。 Kubens 允許您快速在不同的命名空間之間切換。 這兩個工具都
February 7, 2024

K8S基本操作-44-Network Policy

Network Policy K8S Network Policy 是一種 Kubernetes 的功能,可以讓你控制 Pod 之間或 Pod 與外部網路的通訊規則。你可以使用 Network Policy 來定義哪些 Pod 可以互相連接,或者哪些 Pod 可以存取特定的 IP 或埠
February 7, 2024

K8S基本操作-43-Secure Context 設置容器為 no-root 用戶與 Capability

Secure Context 設置容器為 no-root 用戶 我們可以加入以下這段: spec: securityContext: runAsUser: 1010 加完之後狀況如下: --- apiVersion: v1 kind: Pod metadata: name: ubuntu-sleeper namespace: default spec: securityContext: runAsUser: 1010 containers: - command: - sleep - "4800" image: ubuntu name: ubuntu-sleeper 也可以寫在Contai
February 7, 2024

K8S基本操作-42-K8S 選擇映像檔來源

建立一個 Secret 用於儲存映像檔專用 假定我們映像檔來源如下: Name: private-reg-cred Username: dock_user Password: dock_password Server: myprivateregistry.com:5000 Email: dock_user@myprivateregistry.com 我們以此用以下指令建立一個專用的 secret 儲存映像檔伺服器與登入資訊: kubectl create secret
February 7, 2024

K8S基本操作-41-K8S Service account

Service Account 介紹 服務帳戶 (Service Account) 是一種由 Kubernetes 管理的帳戶類型,主要用於為 Pod 中執行的程序提供身分。它可以讓 Pod 訪問 Kubernetes API 和其他資源,而無需使用密碼或其他敏感資訊。
February 7, 2024

K8S基本操作-40-K8S Cluster Role 主機叢集角色

Cluster Role 由於有些資源是綁定某一台主機的,例如: Volume 這種存在硬碟上的資源。 並且這些資源橫跨多個 Namespace 與多個 Node , 如開發環境跟生產環境都需要 Volume 。 而有時候需要
February 7, 2024

K8S基本操作-39-K8S 的使用者與權限

我們是否能在 K8S 建立使用者 並非直接建立,而是採用 x509 建立使用者鑰匙後建立。 K8S 的權限種類 Node 例如每個 Worker Node 都擁有一個權限身份,設置在 kubelet 用來存取 Kube API
February 7, 2024

K8S基本操作-38-K8S API

K8S API 如果我們需要為 K8S 設置自訂介面,更加自動化,甚至將 K8S 由大語言模型管理,這時候存取 API 就是個需要的功能了。 常見的 API 我們這邊以不一定真實存在的 URL:
February 6, 2024

K8S基本操作-37-K8S原生憑證簽署方式

K8S 中各部件通訊時如何保障安全 kube-apiserver, kube-controller-manager, kube-scheduler, etcd, kubelet, kube-proxy 都存在著自己的鑰匙與憑證。 具體來說,每個部件都有著對應的憑證與Key: # 預設管理員 admin.crt admin.key # KUBE-SCHEDULER scheduler.crt scheduler.key # KUBE-CONTROLLER-MANAGER controllermanager.crt
February 6, 2024

K8S基本操作-36-當Kube-API Server 失效時用 CRICTL 檢查錯誤

失效情況 當 ETCD server 失效,或者 Kube API server 失效時,這時無法使用 kubectl 指令登入查看。 這種時刻,需要做的就是登入該 Server ,然後使用 K8S 採用的容器 Runtime 工具來檢查錯誤報告。
February 6, 2024

K8S基本操作-35-ETCD 的預設 Port

ETCD 的預設 Port ETCD server 預設使用 2379 port,所以當 Log 發生連線 2379 port 失敗時,可能是與 ETCD server 連線發生問題。
February 6, 2024

查看OpenSSL憑證指令

檢查憑證的指令如下 檢查憑證的指令可以用-text與-noout來查看憑證細節: openssl x509 -in my.crt -text -noout 輸出類似: Certificate: Data: Version: 3 (0x2) Serial Number: 3147495682089747350 (0x2bae26a58f090396) Signature Algorithm: sha256WithRSAEncryption Issuer: CN=kubernetes Validity Not Before: Feb 11 05:39:19
February 6, 2024

linux查看Journalctl的log

Journalctl 檢查近期 Linux 的Log。 -f: 在終端機上持續輸出。 -n 100: 近期 100 條 Log。 journalctl -f -n 100
February 6, 2024

K8S基本操作-34-檢查 ETCD 登入 Log

檢查 ETCD 登入 Log 我們可以用以下指令查看 etcd 的 client 端登入 Log,包含驗證成功與失敗。 -l 代表詳細內容, -u 代表來自使用者的訊息。 journalctl -u etcd.service -l 或者我們可以採用 kubectl
February 5, 2024

關於OpenSSL憑證-建立自簽CA憑證與憑證登入授權要素

關於 CA Certificate Authority,也就是 SSL 數位憑證的簽發機構。CA 負責對申請 SSL 憑證的網站進行身份驗證,並為其簽發一個包含公開金鑰和其他資訊的數位憑
February 5, 2024

K8S基本操作-33-在 External ETCD server Restore

在外部 ETCD server Restore 回復備份 我們的備份位置: /root/cluster2.db 將要儲存新的 etcd 資料的目錄: /var/lib/etcd-data-new 進行備份回復的指令: ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/etcd/pki/ca.pem --cert=/etc/etcd/pki/etcd.pem --key=/etc/etcd/pki/etcd-key.pem snapshot restore /root/cluster2.db --data-dir /var/lib/etcd-data-new 修改 Service 修改以下檔案: /etc/systemd/system/etcd.service 把 ... [Service] User=etcd Type=notify
February 5, 2024

K8S基本操作-32-檢查ETCD server 上的各種狀態配置

用 PS 指令檢查 etcd 的各個配置檔案路徑與參數 有些情況 Kubectl 工具未安裝在 etcd server 上,所以必須要手動用 ps 指令檢查參數: ps aux|grep etcd 結果: etcd 808 0.0 0.0 11218624 56044 ? Ssl 01:58 0:44 /usr/local/bin/etcd --name etcd-server --data-dir=/var/lib/etcd-data
February 5, 2024

K8S基本操作-31-如何檢查Cluster採用的ETCD的IP or URL ?

如何檢查Cluster採用的ETCD的IP or URL ? 由於 Kube-API server,記錄著這類的訊息,所以可以調出 Pod 訊息查看 ETCD 的位置。 kubectl -n kube-system describe pod <Kube-API Server 的 Pod 名稱
February 4, 2024

K8S基本操作-30-多個 Cluster 與 KubeConfig

Config不等於Config Map KubeConfig 為何要使用 KubeConfig ? 由於如果每次使用 kubectl 指令時,都要附上長串的使用者/密碼/憑證路徑,對維運效率的十分有影響的。 如
February 4, 2024

K8S基本操作-29-備份與還原叢集

備份的幾種方式 Velero 可以簡單佈署在 Docker 上的 K8S 備份工具,還有 Web GUI 。 操作簡單功能完整。 此種方式甚至可以把 Volume 一起打包。 (文章撰寫時)是開源免費的。 https://velero.io/docs/v1.13/ Kubectl 備
February 3, 2024

K8S基本操作-28-檢查ETCD版本

ETCD 是什麼? K8S 的 ETCD 是一個開源的分散式鍵值儲存系統,用於儲存 Kubernetes 叢集的配置和狀態資料。 它是 Kubernetes 的核心元件之一,為叢集提供以下功能: 共享配置: 儲存 Kubernetes 叢
February 3, 2024

K8S基本操作-27-更新K8S Cluster

基本概念 以下是更新 K8S 需要更新的組件: (以下為同版本的組件) kube-apiserver (位於 Master 上) Controller-manager (位於 Master 上) kube-scheduler (位於 Master 上) kubelet (位於 Worker上) kube-proxy (位於 Work
February 2, 2024

K8S基本操作-26-Drain

Drain 與 uncordon 在 Kubernetes (K8S) 中,Drain (有排水的意思) 功能可以將 Pod 轉移到其他的 Node。 方便對某個 Node 進行更新。 排空 node01 由於一般會有 Daemonsets,所
February 2, 2024

K8S基本操作-25-Init Containers

Init Containers 在 Kubernetes (K8S) 中,Init Containers 是一種特殊的容器,在 Pod 內的應用容器啟動之前運行。 Init Containers 可以包含一些應用鏡像中不存在的實用工具和安裝腳本。 你可以在 Pod 的規
February 2, 2024

K8S基本操作-24-關於1個Pod中的2個容器共用1個Volume

關於1個Pod中的2個容器共用1個Volume 以下這個YAML中存在1個 Pod app 此 Pod 中有兩個容器app與sidecar。 接著我們注意到以下兩個容
February 2, 2024

K8S基本操作-23-Exec 執行 Pod 中的指令

Exec 執行 Pod 中的指令 假定我們的 Pod 稱為 app 。 例如,以下的的指令用來直接看 Pod 中的 Log (當然,這不是好方法,但在一切裝置好之前,也許會用上): kubectl exec -it app cat /log/app.log
February 2, 2024

K8S基本操作-22-K8S的Secret

命令建立 Secret 直接採用指令來輸入 Secret 的方法: kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123 YAML 儲存 Secret 將 Secret 轉換成 YAML 編輯: kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123 --dry-run=client -o yaml > db-secret.yaml 可以看到 Base64 編碼後的 Secret (防止一眼被人
February 2, 2024

K8S基本操作-21-K8S的YAML的環境變數與Config Map

環境變數 我們可以採用以下方式設置環境變數: apiVersion: v1 kind: Pod metadata: labels: name: webapp-color name: webapp-color namespace: default spec: containers: - env: - name: APP_COLOR value: pink image: kodekloud/webapp-color imagePullPolicy: Always name: webapp-color 其中的這一段就是了: - env: - name: APP_COLOR value: pink Config Map 以下是
February 1, 2024

K8S基本操作-20-K8S的YAML的 Command 對 Dockerfile 的 Entrypoint 覆蓋

如果 Dockerfile 跟 K8S 的 YAML 配置的 Entrypoint 與 Command 不一樣呢? 實際上執行的指令會是哪一種? FROM python:3.6-alpine RUN pip install flask COPY . /opt/ EXPOSE 8080 WORKDIR /opt ENTRYPOINT ["python", "app.py"] CMD ["--color", "red"] apiVersion: v1 kind: Pod metadata: name: webapp-green labels: name: webapp-green spec: containers: - name: simple-webapp image: kodekloud/webapp-color command: ["python",
January 30, 2024

K8S基本操作-19-K8S的 Rolling Update與 Recreate

我們觀察以下的 Deployment: apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2024-02-01T01:17:43Z" generation: 1 name: frontend namespace: default resourceVersion: "1023" uid: 2933b6b7-59b7-412f-b806-8b80a593f61f spec: minReadySeconds: 20 progressDeadlineSeconds: 600 replicas: 4 revisionHistoryLimit: 10 selector: matchLabels: name: webapp strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: creationTimestamp: null labels: name: webapp spec: containers: - image: kodekloud/webapp-color:v1 imagePullPolicy: IfNotPresent name: simple-webapp ports: - containerPort: 8080 protocol:
January 29, 2024

K8S基本操作-18-K8S讀取Log

檢查 Log 只要採用以下方式即可查看 Log 了。 kubectl logs <Pod名稱>
January 29, 2024

K8S基本操作-17-安裝Metrics Server

Metrics Server 可以監控 K8S 的 Cluster 上的每個 Node 的 CPU, RAM 等使用。 安裝 最簡單的方式是參照以下網址,直接一行指令安裝: https://github.com/kubernetes-sigs/metrics-server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml 使用 可以查看 Node 的 CPU 與 RAM 使用率。 kubectl top node 輸
January 29, 2024

K8S基本操作-16-手動自行建設Scheduler

檢查預設的 Scheduler Scheduler 是個 Pod ,位於 kube-system 這個 namespace。 用以下指令查看 Scheduler: kubectl get pod -n kube-system 設置 Service Account 與 Cluster Role 設置如下: ServiceAccount: my-scheduler (kube-system namespace) ClusterRoleBinding: my-scheduler-as-kube-scheduler ClusterRoleBinding: my-scheduler-as-volume-scheduler 同時建立 Config Map 與 Depl
January 29, 2024

K8S基本操作-15-ServiceAccount 和 ClusterRoleBinding

ServiceAccount 和 ClusterRoleBinding ServiceAccount(服務帳戶) ServiceAccount(服務帳戶) 是一種 Kubernetes 資源,用於為 Pod 提供身份。Pod 可以使用 ServiceAccount 來訪問
January 29, 2024

K8S基本操作-14-Static pods

Static pods 在 Kubernetes 中,Static Pod 是一種特殊的 Pod,它不像一般的 Pod 由 Deployment 或 DaemonSet 等控制器管理,而是直接由特定節點上的 kubelet 进程管理。Static Pod 的主要特點
January 29, 2024

K8S基本操作-13-Daemonsets

Daemonsets 這類程式常駐於 Node 上,類似程式的守護進程。 可用以下指令檢查所有 Namespace 的 Daemonsets: kubectl get daemonsets --all-namespace 運行叢集守護進程,例如日誌收集、監控、網路代理程式等。 在所有節點
January 29, 2024

K8S基本操作-12-Resource limits

Resource limits 資源限制 我們可以設置一個 Deployment 最少需要多少資源,與最多消耗多少資源。 具體的用法是在 containers 裏頭寫下 requests 與 limits 項目。 官方的範例: --- apiVersion: v1 kind: Pod metadata: name: frontend spec: containers: - name:
January 29, 2024

K8S基本操作-11-Node Affinitty

Node Affinitty 在 Kubernetes 中,Node affinity(節點親和性)是一種用於控制 Pod 調度到哪些節點上的機制。它允許您根據節點的屬性和標籤,指定 Pod 應該调度到哪些
January 29, 2024

K8S基本操作-10-Taints AND Tolerations

Taints AND Tolerations 在 Kubernetes 中,Taints 和 Tolerations 是一種用於控制 Pod 調度到哪些節點上的機制。 Taints Taint 是一種附加到節點上的鍵值對。它表示該節點不適合運行具有特定容忍度(
January 28, 2024

K8S基本操作-09-Labels and Selectors

Labels and Selectors Labels 是附加到 Kubernetes 對象(例如 Pod、Deployment、Service 等)上的鍵值對。它們可以用來對對象進行分類和標識,以便於管理和查找。
January 26, 2024

K8S基本操作-08-Scheduling

Kube-scheduler kube-scheduler 負責監視新創建的或尚未調度(unscheduled)的 Pod,並選擇一個最佳節點來運行這些 Pod。由於 Pod 中的容器和 Pod 本身可能有不同的要求
December 31, 2023

繪製GCP設計圖稿

Architecture Diagramming Tool 一個可以繪製GCP架構圖的工具,主要繪圖部件稱為 Google Cloud Developer Cheat Sheet 。 可以幫助設計 GCP 雲端架構。 可以用拖曳進行操作。 參考頁面: Introducing a Google Cloud architecture diagramming tool Google Cloud Developer
December 26, 2023

GCP的ACE證照筆記-考前筆記

GCP ACE 考前模擬題目的小筆記 以下紀錄著模擬考題裏頭的各種超綱題。 儲存秘密 GCP Secret Manager 與 Environment variables 的抉擇,兩個都可行,該選哪個? GCP Secret Manager 提供版本控制和日誌記錄功
November 30, 2023

GCP的ACE證照筆記-12-Storage 儲存

Storage 儲存分成兩種 Block Storage 類似許多二進位訊息的儲存區塊,可以作為硬碟直接掛上。從一個更高的角度來看,硬碟儲存的是一串 0 與 1 , 映像檔也是如此。而 Block Storage 不
November 29, 2023

GCP的ACE證照筆記-11-Cloud KMS (Cloud Key Management)

Data States 資料狀態 Data at rest: 資料在裝置上使用或者在備份中 Hard disk Database Backups Archives Data in motion (運動中): 資料在網路傳輸中 如資料從本地轉送到雲端儲存 應用程式跟 Database 交互中 兩種型
November 29, 2023

GCP的ACE證照筆記-10-Cloud Run

Cloud Run 基於 Knative,一種自動管理 K8S 的工具,幾乎可以做到全自動擴展。 不須維護基礎設施。 使用時才付費。 Cloud Run for Anthos Cloud Run 是在數秒之內運作一個容器帶
November 21, 2023

nginx配置多個reverse-proxy

我們可以看到 nginx 的配置檔案位於下面的位置。 /etc/nginx/nginx.conf 我們可以用下列方法來重新導向我們的 Domain name,可以導向容器,或者其他運作中的程式實例。 nginx.conf server { server_name example1.com; location
November 21, 2023

AWS-EKS-建立一個Cluster

簡述 簡單來說,使用 AWS CLI + eksctl 兩個工具,很快就可以佈署好,並且進行管理了。 比較多步驟的是在新環境中安裝 AWS CLI 。 1.用 Root acount 建立 IAM account 為了乾淨好管理,先
November 21, 2023

K8S基本操作-07-Ubuntu安裝K8S

MicroK8S Ubuntu 官方提供了一個 snap 套件可以超快的安裝 K8S , 稱為 MicroK8S。 sudo snap install microk8s --classic --channel=1.28 sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube su - $USER 安裝後檢查狀態是否安裝完成 microk8s status --wait-ready 使
November 19, 2023

K8S基本操作-06-imperative指令

Imperative imperative command 指令式命令,例如詳細描述每個需要的步驟。 Declarative command 宣告式命令,僅需要描述期待,實現則由程式自行決定。 如 kubectl run nginx-pod --image=nginx:alpine 就屬於 imperative command。
November 19, 2023

K8S基本操作-05-Service基本使用

列出 services kubectl get services 結果如下 controlplane ~ ➜ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 13m kubernetes 的 ClusterIP 是 K8S 預設的服務。 顯示 service 的細部內容 kubectl describe service kubernetes 結果如下。 controlplane ~ ➜ kubectl describe service kubernetes Name: kubernetes Namespace: default Labels: component=apiserver provider=kubernetes
November 19, 2023

K8S基本操作-04-namespace基本使用

列出 namespaces kubectl get namespaces 列出某 namespaces 裏頭的 pods 例如我們要取得 research namespaces 裏頭的 pod。 kubectl -n research get pods 算出某個 namespaces 裏頭的 pods 數量 kubectl -n research get pods --no-headers | wc -l 手動在某 namespaces 裏頭啟動 pod kubectl -n finance run redis
November 19, 2023

K8S基本操作-03-Deployment基本使用

取得當前有多少 Deployments kubectl get deployments 檢查 Deployments kubectl describe deployment frontend-deployment 用 YAML 執行一個 Deployment 記得 kind: Deployment 開頭要大寫 kubectl apply -f deployment-definition-1.yaml 閱讀 Deployment 官方文檔 kubectl explain deployment
November 19, 2023

K8S基本操作-02-ReplicaSet基本使用

本篇筆記主要談論 ReplicaSet 的基本操作。 ReplicaSet 只能維持 Pod 的數量,不能實現 Pod 的版本更新。如果要更新 Pod 的映像檔或配置,需要手動刪除舊的 Pod,讓 ReplicaSet 根據模板創建
November 19, 2023

K8S基本操作-01-建立與管理Pod

本篇筆記主要談論 kubectl 的基本操作。 列出 default namespace 的 pods kubectl get pods 或者 kubectl get pods -n default 手動運作一個 Nginx 的 pod kubectl run nginx --image=nginx 確認 pod 使用哪個 image 用以下指令顯示 pod 完整細節。 例如我們的
November 14, 2023

GCP的ACE證照筆記-09-Cloud function 第二代 (2nd gen)(未完成)

Cloud function - 2nd gen (未完成) 更長的執行時間 60 分鐘。 更大的 VM Size,16 GB RAM,4 vCPU。 Concurrency: 1 個 function 接受同時 1000 個併發。第一代,1 次接受 1 個併發。 Multiple
November 14, 2023

GCP的ACE證照筆記-08-Cloud function 第一代

Cloud function 可以用在某個事件 (Event) 發生時,產生某個反應。 例如某個 error log 發生時,出現反饋。 這項服務是 Serverless 服務,只在運作時算錢。 支援語言 Node.js, Python, Go, Java, .NET, and Ruby 成本計算方
November 14, 2023

Serverless真的省錢嗎

不一定! 可能更貴。 根據文章 Scaling up the Prime Video audio/video monitoring service and reducing costs by 90% 的研究顯示,某個影像音訊監控服務,在採用各種 AWS Lambda 函數互相交互的時候,花費了大量的資金。 https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90
November 11, 2023

GCP的ACE證照筆記-07-Google Kubernetes Engine

GKE 簡述 (p.111) Google 提供的 K8S 服務。 跟典型的 K8S 服務一樣有以下特色: Auto Scaling Service Discovery Load Balancer Self-Healing Zero Downtime Deployment Auto-repair Pod and Cluster Autoscaling 可用 Cloud Logging 與 Cloud Monitoring 監控 由 Google 提供的 Container-Optimized OS 提供 Persistent disks 與 Local SSD。 啟動
November 11, 2023

GCP的ACE證照筆記-06-App Engine

App Engine 一個可以簡單部屬可以自動縮放的應用程式。 預設運作環境: Go, Java, .NET, Node.js, PHP, Python, Ruby ,這些語言都有提供運作環境。 客製化作環境: 可採用任何語言。 App Engine 是 Re
November 9, 2023

GCP的ACE證照筆記-05-Managed Services

IAAS (Infrastructure as a Service) 供應商管理硬體,其他可以自訂。 例如 : VM。 需自己更新 OS, APP, APP runtime, Auto scaling, Availability, Load balancing。 PAAS (Platform as a Service) 供應商管理硬體, OS, 網路, APP runtime, Load balancing,
November 9, 2023

2023-11-09-面試心得

今天線上面試是一間 Laravel 有關的公司。 有錄取,人都很好,但由於在考證照,所以暫時沒加入! 以下是面試題目: 第一題 請問 MVC 架構分為哪三個部分? 第二題 Laravel 中
November 9, 2023

GCP的ACE證照筆記-04-Cloud Load Balancing

Cloud Load Balancing 負載平衡,可以提供一個IP或者網址後方,放置多台機器。 可以單 region 或者 multiple regions。 增加服務的 Resiliency (彈性),Auto Scaling,Hi
November 8, 2023

GCP的ACE證照筆記-03-Instance Groups

Instance Groups 可以採用數個 VM template 組成一個群組進行管理。 兩種型態的 Instance Groups: Managed: 自動擴展的同一種 template 並且自動修復與自動管理釋放虛擬機。 Unmanaged: 許多不同型態的 template 組成,無法自
November 8, 2023

GCP的ACE證照筆記-02-Gcloud簡介

Gcloud 的常用功能 # 初始化,登入GCP帳號 gcloud init # 列出所有啟動的屬性,可以看到登入帳號與 projuct 名稱 gcloud config list # 列出帳號 gcloud config list account # 列出區域 gcloud config list region # 列出 Project gcloud config
November 8, 2023

2023-11-07-面試心得

今天參加的面試是一間網頁公司,面試的是兩個職位。 後端工程師 SRE (Site Reliability Engineering) 網站可靠度工程師 我主要期待的是 SRE 的這份職位。 該公司若面試後超過 7 天沒有回應
November 8, 2023

GCP的ACE證照筆記-01-GCE介紹

GCP-ACE 證照筆記 Associate Cloud Engineer Certification 助理雲端工程師證照 Region 遍布全球的地區,一個地區會有多個 Zone 機房。 目前有 20 個以上。 Zones 資料中心 (data centers),同 region 的 zone 資料互傳
November 8, 2022

CCNA證照筆記

CCNA證照筆記
August 26, 2022

如何有效的使用Fetch函數

由於當前Fetch這種官方的前端AJAX函數,已經可以簡短的實現,再不換頁的情況下傳送訊息。所以可能的話盡量使用原生的Fetch函數來實現A
August 18, 2022

EJS-一個Javascript模板引擎

EJS-一個Javascript模板引擎 EJS是個可以像是PHP或者ASP般,在HTML中嵌入後端變數的模板引擎。 使用的語法是這樣的,我們傳
August 18, 2022

AWS證照SSA筆記

Region 區域,例如美國東部,或者東京… Availability Zones 簡稱AZ,在一個區域裡頭,可以有數個AZ,例如同樣在東京,可以有兩個AWS機房。 IAM 權限控管
August 12, 2022

建置一個React前端網站

更新Node.js 這段請隨著Node.js的版本更新調整。 本文章撰寫的時候,我希望安裝Node.js 16 版,因為此時需要如此才能順利建置Rea
August 12, 2022

NPM初始化資料夾

NPM初始化空資料夾 建立一個空資料夾,並且進入資料夾。 mkdir npm-test cd npm-test 輸入npm初始化指令 npm init 然後輸入下列內容: package name: 專案名稱 version: 專案版本 description: 專案介紹 entry point:
July 6, 2022

Docker基本指令

Docker概念 半虛擬化 比一般虛擬機快 檔案大小很小 不用完全模擬到硬體層級 實用只指令 1.運作一個nginx網頁伺服器 run: 下載映像檔同時執行。 -d: 第
July 5, 2022

SSH使用特定PEM檔案登入

我們常常使用SSH登入某台主機或電腦,SSH可以用密碼或者金鑰檔案進行登入。 由於金鑰檔案的長度會比人類可以記憶的密碼長的多,所以通常而言更加
June 2, 2022

按照比例縮放元素的vh與vw

當我們想按照畫面比例縮放一個元素時 我們可以用以下兩種方式 %比例 width: 30%; 這個元素為父元素寬度的30%。 vw,vh比例 width: 100vw; 這個元素為瀏覽網頁的裝置的
June 2, 2022

Bootstrap響應式網頁出現白邊

問題 在使用Bootstrap時,響應式網頁在手機上出現了白色的邊框。 雖然已經使用.container或者.container-fluid了,
March 14, 2022

VirtualBox虛擬機作為伺服器

如果我們今天想要架設一個小小的服務,或者網頁,甚至只是想在一個乾淨的環境開發網站,不希望開發完畢後電腦裡頭還留下一大堆網頁開發的程式,這個時
March 14, 2022

好用的linux工作管理員

這是一款非常好用的整合linux工作管理員。 跟Bashtop,Gotop這類的終端機管理員比起來,可以用滑鼠操作的GUI是一大亮點。 除此之外
March 11, 2022

OAuth2.0概述

Ps. 此篇也會用於我嘉義大學的專題討論課程與ISLasb實驗室Meeting OAuth2.0簡化圖 實際的細節比這個多了一點點步驟,不過這是從簡單
March 9, 2022

軟體測試的覆蓋準則

假設 假設這是我們今天要測試的程式。 INPUT A,B,X IF (A>1) AND (B=0) THEN Y=A IF (A=2) OR (X>1) THEN Y=X PRINT Y 流程圖 %%{init: {'theme':'dark'}}%% flowchart TD A(程式開始) --> B{A>1 and B=0} B -->|True| D(Y=A) B -->|False| E{A=2 or x>1} D --> E{A=2 or x>1} E{A=2 or x>1} --> |False| G
March 9, 2022

Mermaid畫出流程圖

我們可以用Mermaid這個Javascript函數庫來繪製出流程圖。 graph TD A(程式開始) --> B{A>1 and B=0} B -->|True| D(Y=A) B -->|False| E{A=2 or x>1} D --> E{A=2 or x>1} E{A=2 or x>1} --> |False| G(程式
March 9, 2022

黑箱與白箱測試

白箱測試(White-box testing) 白箱測試(White-box testing),我們已經了解軟體內部運作後,進行測試。很有可能程式是我們自己撰寫
March 9, 2022

Azure部屬MySQL

1.適用於 MySQL 的 Azure 資料庫 點選『適用於 MySQL 的 Azure 資料庫』 如果沒有的話,可以在上排選單。 2.建立 3.單一伺服器 4.建立MySQL伺服器 以下有幾個一定要
March 3, 2022

LaTex畫出矩陣

繪製出普通的矩陣 \documentclass{article} \usepackage{amsmath} \begin{document} $\begin{bmatrix} a & b & d\\ c & d & d \end{bmatrix}$ \end{document} $\begin{bmatrix} a & b & d\\ c & d & d \end{bmatrix}$ 繪製出有線的矩陣 \documentclass{article} \usepackage{amsmath} \begin{document} $\begin{bmatrix} \begin{array}{cc|c} a & b & d\\ c & d & d \end{array} \end{bmatrix}$ \end{document} $\begin{bmatrix} \begin{array}{cc|c} a & b & d\\ c
March 1, 2022

ASP.net找不到csc.exe

打開上排選單的 工具>NuGet套件管理員>套件管理器主控台 然後輸入以下指令。 Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
February 23, 2022

Git整合過去Commit

如果說有多條commit要合併成一條 就需要使用 git rebase 1 首先,在git 中最新的一個commit 稱為 Head 所以git rebase的一個常用指令就是 git rebase
February 23, 2022

Git選擇分支

1.什麼是分支? 當我們在開發某個東西時,總存在著測試和開發中,無法正常上線的狀態之版本 而多人合力開發時,也有很多的細節需要整合 這時候就會使用
February 23, 2022

Git的簡單使用

1.Git的三個區域 Working tree 工作樹 我們甚麼都還沒做時,資料在這裡 Staging Area 暫存區 我們進行指令add 後資料在這裡 Repository 儲存庫 我們commit時資料進入儲存庫
February 23, 2022

Git復原失誤的操作

以Revert復原已經提交的變更 每次的變更都會留下雜湊質值 git log 可以查看 要復原變更可以以雜湊值復原 git revert acc6af6 如果復原時跳出UNIX式的VI編輯器介
February 23, 2022

用Gogs自己架設Git Server

Gogs是啥? 由go語言撰寫而成,一個輕量化方便部屬的Git伺服器。 需要的部件 Docker: 一個能夠建立容器,快速部屬環境的半虛擬化工具。 Gogs: 輕量化Git
February 23, 2022

如何用22port以外連上Git Server

Git伺服器的SSH port 基本上來說,git server所使用的ssh port就是22 port。 為何會有例外 由於自己架設的Git Server,2
February 23, 2022

Jenkins的docker容器

一次性快速使用Jenkins docker run \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ jenkinsci/blueocean 趁密碼出現時,從終端機上頭複製下來 用複製到的密碼解鎖 http://127.0.0.1:8080/ 長期保存的Jen
February 23, 2022

將ASP.net部屬到Azure的AppService

啥是Azure的App Service服務? App Service是個微軟提供,要花錢的服務。 不過還好在碩士生涯中,學校有提供教育用的點數可以使用,
February 22, 2022

ASP.net中建立Model

啥是MVC架構 模型(Model) - 演算法、資料庫…等等程式操作。 視圖(View) - 圖形介面(此指網頁前端)相關。 控制器(Con
February 18, 2022

用Express-generator重新實做路由

目錄 1.先備知識 2.新增路由檔案 3.修改app.js 先備知識 學會安裝NPM 用Express-generator建立專案 Express-gen
February 17, 2022

Express-generator使用與理解

目錄 1.先備知識 2.專案進入點/bin/www 3.理解package.json 4.理解app.js 5.調整Morgan的log格式 6.模塊(
February 16, 2022

用Express-generator建立專案

建立一個資料夾稱為web mkdir web 進入資料夾 cd web 安裝express 完整語法 npm install express --save 也可以安裝為開發者模式 npm install express --save-dev 簡化語法 一般模式 npm i express 也可以安裝為
February 16, 2022

使用Express

原生的安裝方式 建立一個資料夾稱為web mkdir web 進入資料夾 cd web 安裝express 完整語法 npm install express --save 也可以安裝為開發者模式 npm install express --save-dev 簡化語法 一般模式 npm i
February 16, 2022

執行一個簡單的node.js程式

Node.js一句話陳述 用javascript在非瀏覽器的本機環境用的直譯器。 一個簡單的javascript的程式 檔案名稱: main.js console.log("Hello world"); 直接執行 node
February 15, 2022

ASP.net架構簡介

ASP.net初探 這只是隨意概括的淺談ASP.net的架構。 在這邊展示的是ASP.net的MVC架構網站的一個概括模型。 進入點與外層資料夾結
February 15, 2022

NPM安裝

NPM是啥? node.js就像是一個登山客,沒有任何裝備時能作到的事情不多,而NPM就如同他的背包,可以讓node.js裝上許多不同的模塊。
October 12, 2021

NS2課程筆記

目錄 NS2使用什麼語言 變數 閱讀檔案 判斷與表示 流程控制 程序(類似函數) NS2使用什麼語言 NS2使用一種稱為TCL的語言,如果想了解更多的語法可
October 7, 2021

OpenGL課堂筆記

目錄 第一週 推薦書 Edward Angel and Dave Shreiner, Interactive Computer Graphics: A Top-Down Approach With Shader-Based Opengl, 6th Edition, Addison-Wesley Pub. Co., April 10, 2011. ISBN:978-0132545235. Edward Angel and Dave Shreiner, Interactive Computer Graphics: A Top-Down Approach Using WebGL, 7th Edition, Addison-Wesley Pub. Co., March 10,
October 3, 2021

資訊安全與管理筆記

目錄 第一週 第二週 第三週 第一週 推薦書 William Stallings. Cryptography and Network Security: Principles and Practice (7th Edition). Prentice Hall, 2017(主要) Behrouz A. Forouzan. Introduction to Cryptography and Network Security. McGraw-Hill, 2007. Douglas R. Stinson. Cryptography : theory and practice (3/e). Boca Raton : Chapman & Hall/CRC, 2006. Bruce Schneier. Applied Cryptography: Protocols,
October 1, 2021

影像識別課程筆記

目錄 第一週 第二週 第一週 什麼是影像? 影像是由許多x,y軸座標組成。 單一個點的振幅,也可以視為光線的亮度,稱為『intensity』(強度)或『
September 29, 2021

opengl安裝(Ubuntu)

1.Linux版本 此範例用在Ubuntu20.04 2.apt安裝opengl 安裝OpenGL與相關依賴 sudo apt install cmake make g++ libx11-dev libgl1-mesa-dev libglu1-mesa-dev libxrandr-dev libxext-dev libglew-dev libglfw3 libglfw3-dev freeglut3-dev freeglut3 這邊主
September 24, 2021

Android06客戶端Socket(待修正)

本篇未經調整,雖然能運作,但其中命名可能容易混淆,請斟酌參考。 1.開通網路使用權限 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.httpreguests"> <!--這兩行是關鍵內容,可以啟動網路
September 24, 2021

java撰寫socket的client端

1.緣由 我今天在實驗室跟學長一起研究Java中Socket的撰寫,在此進行筆記以免忘記。 Socket是由server與client組成,有時
September 22, 2021

opencv的第一個程式

1.要求 需要看懂,建議去看基礎的C++教學。 2.main.cpp 我們首先建立一個檔案,稱為main.cpp 內含我們主要的C++檔案 #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char* argv[]) { //
September 22, 2021

opencv安裝

1.Linux版本 此範例用在Ubuntu20.04 2.apt安裝opencv 安裝c++版本 sudo apt-get install libopencv-dev 安裝python版本 sudo apt-get install python-opencv
September 16, 2021

Android05進行httprequest

1.開通網路使用權限 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.httpreguests"> <!--這兩行是關鍵內容,可以啟動網路使用權限--> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--這兩行是關鍵內容,
September 10, 2021

Android snackbar與除錯log04

1.目標 各種程式語言在執行的時候都可以看到一些log,方便我們除錯與對程式進行調整。 Android上也存在著顯示log的工具。 除此之外,還有
September 9, 2021

Android長期保存資料於SharedPreferences03

1.目標 將資料存入Android的SharedPreferences,進行長期保存 官方文檔 https://developer.android.com/reference/android/content/SharedPreferences 2.前端 欄位: 文字輸入欄位(將資料存入Share
September 9, 2021

Android將使用者輸入傳入後端02

1.目標 這次的目標是要把前端輸入欄位的內容,接收到後端的java,然後再重新傳回前端。 從前端擷取內容,對於像是帳號密碼登入,輸入金額,或類似
September 9, 2021

Android中的按鈕01

1.介紹 當我們要開發安卓App時,第一個步驟就是安裝Android Studio。 可以在官方網站上頭找到下載點。 Android Studio官方網站 https://developer.android.com/studio 2.開
August 20, 2021

單向函數

1.簡介 簡單來說,用某個函數將x算成y很容易。 \[ y=f(x) \] 但是反過來的話,將y算回x則十分困難。也就是說,y算回x需要大量的時間,甚至有時候只能將
August 20, 2021

數學符號

1.連續乘法符號 該符號代表連續成法,是pi的大寫版本。 \[ \prod_{i=1}^{4} {i} = 1\times2\times3\times4=24 \] <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <p> \[ \prod_{i=1}^{4} {i} = 1\times2\times3\times4 \] </p>
July 27, 2021

插入數學內容的方法

範例Latex與javascript引入語法 <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <p> When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are \[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\] </p> 範例 When \(a \ne 0\), there are two solutions to \(ax^2 + bx
July 26, 2021

python網路與安全閱讀心得

本篇引用自Mastering python for networking and security一書 文中所有範例都來自該書本與該書本的範例網站 書本的範例儲存庫: https://github.com/PacktPublishing/Mastering-Python-for-Networking-and-Security-Second-Edition 目錄 第一章 從目錄來看,
July 21, 2021

MAC位址掩蔽

作者 阿維 環境 Ubuntu 20.04 概念 我們的IP位址,除非申請固定IP否則是會變化的,如果你願意也可以用特定軟體來改變或借用別人的IP位址。 所以既然IP是可以
July 19, 2021

suricata入侵防禦系統(IPS)

作者 阿維 環境 拜託,使用Ubuntu吧! 不然要從頭編譯suricata。 雖然可以,但是比較麻煩。 安裝 安裝PPA sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update 安裝s
July 17, 2021

讓firefox跑在docker-compose裡頭的正確腳本

資料夾結構 firefox ├── docker-compose.yml ├── Dockerfile └── run docker-compose.yml #docker-compose版本 version: "3.4" #服務,不過這裡唯一的服務就是firefox瀏覽器 services: #服務名稱,
July 16, 2021

linux下了解自己的連線與port狀態

大綱 本文章探討兩個可以用來了解當前port狀態的工具,ss與NetHogs。 ss是大多是linux發行版的內建工具。 NetHogs則可以非常
July 13, 2021

用UFW在ping下隱藏自己

作者 阿維 概念 通常入侵與攻擊的第一步驟,是藉由ICMP(例如ping)或其他開放端口服務發掘主機所在的IP位址。 我們可以嘗試先在ICMP的角度
July 8, 2021

公共WIFI網路嗅探

作者 阿維 同意條款 閱讀本篇文章等同承諾: 不將相關知識用在任何非法用途 不窺探他人隱私 保持誠實與友善 所有安全測試知識只用於維護安全的目的 測試用的器
July 8, 2021

ventoy在隨身碟上裝多個作業系統

傳統隨身碟安裝作業統的方法 傳統上,我們會一個隨身碟安裝一個作業系統安裝程式或Live CD。當然也可以採取用分割區的方式,來在單個隨身碟安裝多
June 21, 2021

一篇CC攻擊腳本分析

聲明 本篇分析由阿維撰寫,特此感謝推薦我資安書籍的王教授,陪我進行測試的蕉蕉,與陪我聊天的小李。 本篇文章的研究目的是為了保護網站主機,而對於攻
June 16, 2021

AppArmor研究_1

AppArmor 是一款附帶在Ubuntu linux裡頭的核心安全模組,是用來進行強制存取控制(MAC)的。 假定我們今天運作著PHP網頁伺服器,而裡頭某個漏
June 12, 2021

讓容器獲得本機網路的完整權限

docker run指令的對外網開放端口選項 我們如果想讓容器與本機使用同一個網路,並且能建立像是網頁伺服器一類的對外開放端口, 可以將網路設置為host。
June 8, 2021

docker運作圖形程式

本篇我們以在docker上頭運作firefox程式為案例。 但也可應用在其他的軟體。 知識 連線檔案 由於在linux上頭連socket連線都是以檔
June 2, 2021

清理apt暫時存檔

下載套件的暫存路徑清除 當apt套件管理工具在安裝套件時,會先對套件進行下載。 下載完畢尚未安裝的套件會被儲存在以下路徑: /var/cache/apt/archives 當這個目錄裡頭的東西
May 28, 2021

安裝KVM

本篇討論在linux mint上頭安裝kvm虛擬機的方法。 檢查CPU相容性 cpu檢查工具 sudo apt install cpu-checker 檢查 sudo kvm-ok apt 套件安裝 sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager ovmf 啟動虛
May 19, 2021

github免密碼上傳與RSA金鑰產生

先決條件 這篇是建立在理解 git基本使用 擁有github帳號 使用linux 上述條件達成才比較能夠理解本篇git的部份, 建議上網找些資料學習。 不
May 19, 2021

LinuxMint20.1上安裝docker

Mint安裝docker會遇上的問題 由於Mint目前還沒有專用版本的docker儲存庫, 所以我們必須使用Mint的源頭Ubuntu版本的do
May 15, 2021

python與byte串與網路

本篇引用自Foundations of Python Network Programming一書 bytes串與網路的關係 在網路傳輸時如socket,是無法直接採取Unico
May 3, 2021

中斷無線網路的方法

警告:此方法只能用於自己的無線網路裝置,目的應該是了解無線網路運作,絕對不能造成他人的困擾或損失,我們應該秉持所有人類都是同胞的心態。就算你
May 1, 2021

docker.sock錯誤處理

docker.sock的錯誤 剛裝好docker時常常會跳出此種錯誤 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied docker.sock的功能 簡
May 1, 2021

curl遠端執行shell

遠端(例如github或網頁)執行shell script的方法, 此方法需要curl套件。 bash < <(curl -s 網址) 這種方法執行的shell中不可加入su
April 29, 2021

python網路程式03:tcp

本篇引用自Foundations of Python Network Programming一書 1.tcp通訊 import argparse, socket #如果長度不符預期,則發出錯誤提示 def recvall(sock, length): data = b'' while len(data) < length: more
April 29, 2021

python網路程式02:udp協定與port

本篇引用自Foundations of Python Network Programming一書 1.port的用途 port其實可以看作在網路傳輸訊息上頭的一個小標籤 用來區分
April 29, 2021

python網路程式01:基礎

本篇引用自Foundations of Python Network Programming一書 本章討論如何使用python發出http請求 1.用網址取得主機ip import socket if __name__ ==
April 29, 2021

python_virtualenv使用

1.安裝virtualenv虛擬環境 linux mint或ubuntu上頭安裝時可以用apt來進行安裝 sudo apt install virtualenv 或直接用pip3來安裝 pip3 install virtualenv 2.建立虛擬
April 28, 2021

Bashtop好看點的主機狀態面板

希望有個看起來酷炫又詳細的主機狀態顯示器嗎? bashtop符合你的需求! 在debian上頭安裝bashtop sudo add-apt-repository ppa:bashtop-monitor/bashtop sudo apt update sudo apt install bashtop
April 27, 2021

檢查下載檔是否被調包

1.檢查檔案的方法 今天假設我們下載了一個檔案,叫做 ubuntu-20.04.2-live-server-amd64.iso 我們要如何檢查是否被High客給調包? (High客:在網路上無時無刻情緒都很high,會
April 24, 2021

ngrok使用

人不可能一帆風順,人生低潮的時候,還是需要能遠端展示網頁的工具 當手邊沒太多錢訂購vps或者是固定ip網路時…就靠ngrok架站
April 16, 2021

docker秒退的問題

docker為何秒退的猜測 這只是猜測,個人實力不足,不能直接斷言問題所在。 當docker中所有的程序(process)都執行完畢時,dock
March 28, 2021

區域變數與陣列的記憶體安排

區域變數與動態分配存在於stack中,是由高位向低位記憶體成長 類似這樣 記憶體高位 ----- int a int b int c . . . ----- 記憶體低位 而陣列存在於heap中,是由
March 25, 2021

C語言程式與x86組合語言的關係

緣由 前段時間,嘉義大學資訊工程系受人敬重的王教授寄給我一份關於防範buffer overflow的相關文章, 這文章十分的棒,裡頭大致上提到如何
March 24, 2021

Gdb使用

GDB使用指令 --------------- 提示gcc編譯時記得開啟g選項,編譯出來的產物才不會啟動優化, 同時可以使用gdb除錯 匯入檔案:gdb 檔案名稱 匯入後命令行左邊
March 20, 2021

Linux_mint卡在開始logo的解決

Linux_mint卡在開始logo的解決 linux mint 在某些情況下會卡在開機logo 而引發這種情況的可能原因 常常與顯示卡(gpu)有關連 若顯示卡是n
March 19, 2021

Vue筆記18以list管理class綁定

Vue筆記18以list管理class綁定 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; }
March 19, 2021

Vue筆記16動態調整綁定class

Vue筆記16動態調整綁定class <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; } .activeFont { font-size:
March 19, 2021

Vue筆記17另一種class綁定方式

Vue筆記17另一種class綁定方式 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <style> .activeRed { color: red; } .activeFont {
March 18, 2021

Vue筆記13覆蓋原本標籤行為

Vue筆記13覆蓋原本標籤行為 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <div> {{ message01 }}</div> <!
March 18, 2021

Vue筆記14vbind與von縮寫

Vue筆記14vbind與von縮寫 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!-- v-bin
March 18, 2021

Vue筆記15計算屬性

Vue筆記15計算屬性 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!--可以在綁定範
March 18, 2021

Vue筆記12將表達式插入模板

Vue筆記12將表達式插入模板 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <!--此處
March 17, 2021

Vue筆記11偵測元素的創建與變更

Vue筆記11偵測元素的創建與變更 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <div id="tag01"> <div>{{ text01 }}</div> <div style="color:red">{{ changeAlert }}</div>
March 17, 2021

Vue筆記10.資料的綁定

Vue筆記10.資料的綁定 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <!--物件目標標籤
March 16, 2021

Vue筆記9.組件基本使用方式

Vue筆記9.組件基本使用方式 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習</title> </head> <body> <!--物件目標
March 16, 2021

Vue筆記8.簡單使用組件

Vue筆記8.簡單使用組件 vue框架對於重複使用網頁部件(例如按鈕,分隔線)提出了解決方案 這類重複使用部件內容有些複雜 以下先用最簡單但是無法
March 16, 2021

Vue筆記7.同步表單與頁面文字

Vue筆記7.同步表單與頁面文字 可以藉由v-model來同步輸入框與物件內的資料 <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> <title>簡化版Vue學習&l
March 15, 2021

Vue筆記6.以按鈕啟動函數

Vue筆記6.以按鈕啟動函數 我們建立一段字串"我是貓"在vue物件中 然後用"addWord()“這
March 15, 2021

Vue筆記5.for迴圈

Vue筆記5.for迴圈 若我們希望某個元素重複出現,例如卡片或商品外框 但是內容要求不同,例如商品名稱,我們可採用v-for <!DOCTYPE html> <html lang="zh-hant-TW"> <head> <meta charset="UTF-8"> &l
March 15, 2021

Vue筆記4.條件式顯示隱藏元素

Vue筆記4.條件式顯示隱藏元素 我們如果希望某些頁面元素, 在特定條件下隱藏或顯示。 甚至是將所有頁面元素放入同一頁, 僅在需要時顯示必要部份。 我
March 11, 2021

Vue筆記 3:動態修改標籤屬性

Vue筆記 3:動態修改標籤屬性 稍微提到一下,如果這篇教學對你有幫助,請不要吝嗇教導你周圍的同事,我可以保證你一定會過得更快樂 HTMl標籤存在
March 11, 2021

Vue筆記 2:將字串插入目標標籤

Vue筆記 2:將字串插入目標標籤 我們注意到vue導入特定文字需要四個部份: 1.目標html標籤,下列範例為tag01 2.目標標籤中的文字區塊
March 11, 2021

Vue:1直接引用

Vue筆記 1:直接引用 該筆記為了快速上手,蓄意忽視webpack等套件使用,若有機會將會於別篇筆記提及 首先我們簡單的建立一個html檔案,然
March 1, 2021

把記憶體當硬碟用

你希望有個資料夾可以關機之後就徹底清除嗎? 你感覺某個檔案在硬碟裡的執行速度還是不夠快嗎? 這時候你可以啟用ramdisk 修改檔案系統表 已roo
March 1, 2021

Linux Mint20更換開機圖示

下載喜歡的開機圖示 下載開機圖示1 下載開機圖示2 打開圖示資料夾取出最裡層的資料夾 然後將其複製到以下位置 /usr/share/plymouth/themes 修改圖示檔案設定文件 修改預設的開機圖示
March 1, 2021

Linux在SSD上的損耗減少策略2(關閉系統紀錄)

在linux中,為了明確清楚電腦曾經發生過什麼,所以會將一切紀錄記載在以下資料夾 /var/log 但是這樣終究會損耗SSD的寫入次數 而且紀錄檔會越來越大 如果
March 1, 2021

linux在SSD上的損耗減少策略1(佔存檔移入記憶體)

概述 固態硬碟SSD存在著寫入次數限制 而linux上頭各應用程式 暫時存在的檔案通常會放在 /tmp 目錄之中 我們該如何減少/tmp 中頻繁的擦寫帶來的損耗
February 28, 2021

手動連接裝置或磁碟槽(掛載)

假設今天,你的硬碟同時存在linux與windows 你啟動linux後希望存取windows的D槽 此時D槽被標記為 /dev/sda2 這時你可以先建立資料夾 /media/MyDisk
February 27, 2021

加入佈景主題

從github抓取的指令 例如 ,我們要抓的佈景主題的名稱叫 m10c 我們找到m10c的部落格網址 然後輸入以下指令 git submodule add https://github.com/vaga/hugo-theme-m10c.git themes/m10c 指令的最後一段 themes/m10c 意思是將主題
February 26, 2021

建立一個新的部落格

1.命令行 命令行輸入後 hugo new site hahablog 這樣會建立一個稱為『haha』的部落格
February 26, 2021

Hugo建立文章

1.命令行 命令行輸入後 hugo new posts/心平氣和.md 這樣會建立一個稱為『心平氣和』的文章 2.編輯 可以用各種文字編輯器進行編輯 通常是輸入內容 3

自我介紹

很高興認識你,下方是關於我的一些簡單介紹,希望你大概理解我是個如何的人~ 1.信仰 我同時是基督新教徒與天主教徒,在我看來人與人之間追求和平,彼
  • ««
  • «
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
  • »»
© 無面者小站 2024