跳到主要內容

發表文章

目前顯示的是有「vm」標籤的文章

如何使用 Cloud VPN 跨專案存取私有 GKE 叢集 - 使用 Classic VPN

  如何使用 Cloud VPN 跨專案存取私有 GKE 叢集 - 使用 Classic VPN Classic VPN 使用 Route Based 的方式, 跟據 Routing Table 裡設定的路由規則, 將封包轉送到指定的目的地 以下示範在 project 01, project 02 各自建立 GKE, VM, 接著透過 Classic VPN 讓 us-east4 的 VM 可以 access project 01 下 us-central1 的 private GKE 叢集 Step 1. 建立 VPN Gateway 需要建立一個 VPN Gateway 作為 VPC 網路對外溝通的橋樑 variable "p1_project_id" {     default = "project-01" } variable "p1_region" {     default = "us-central1" } resource "google_compute_vpn_gateway" "p1_vpn_gw" {   project   = var.p1_project_id   region    = var.p1_region   name      = "vpn-gw"   network = "projects/ ${var.p1_ project_id } /global/networks/default" } Step 2. 建立 Routing 規則 需要一個對外 IP, 讓外部流量可以流進 VPN Gateway resource "google_compute_address" "p1_vpn_ip" {   project      = var.p1_project_id   region       = var.p1_region   name         = "p1-vpn-ip"   address_type = ...

[解決方法] mac 作業系統上無法使用 docker

  錯誤訊息 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 原因 因為 docker 的設計是走 client-server 的架構,  如果少裝了 server 的部分就會出現以上的錯誤訊息 解決方法 因為 docker daemon 需要使用 linux kernel 上的某些功能, 所以若想要在 mac 的 OS X 上使用 docker 必須額外起一台 linux VM 給 docker daemon 用  Step 1. 安裝 virtual box $ brew install virtualbox --cask   Step 2. 安裝 docker machine $ brew install docker-machine --cask   Step 3. 設定 使用 docker-machine 建立 VM 跑容器 $docker-machine create --driver virtualbox default $docker-machine restart   輸出環境變數 $docker-machine env default 如果執行以上的指令出現錯誤訊息 Error checking TLS connection: ...  可以執行以下指令重新產生憑證 $docker-machine regenerate-certs 最後套用環境變數, 讓 docker 知道要怎麼去跟這台 VM 溝通  $eval $(docker-machine env default)   測試 若做完以上的步驟沒噴錯誤訊息的話, 可以跑個 hello-world 看看 docker daemon 有沒有起來 $docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha...

如何在Google App Engine(GAE)上部屬Go應用程式: Deploying your Go app on Google App Engine

前言 話說 Google 推行 App Engine 已經有好一陣子了, 就算後來 GCP 的光芒幾乎都聚焦在其他產品上如 Kubernetes Engine, 但直至今日還是有很多死忠的開發者喜歡使用 App Engine 這項服務, 對於不想花時間搞底層環境的人來說, 將服務部屬在這兒絕對是最佳的選擇 以下簡單的介紹如何在 Google App Engine(GAE) 上部屬Go程式 首先, 設定環境 需要在開發的環境裡安裝 glcoud 的 SDK 並且初始化某些設定 gcloud init 或是, 直接打開 CloudShell 直接在上面敲 gcloud 的指令也可以 (但最後部屬時需要把程式碼 clone 到 CloudShell 的機器裡) Step 1. 建立App.yaml 在工作目錄中建立 App.yaml 來描述部署的環境, 如下所示 在 App.yaml 裡面可以定義 Runtime, Service Name, 以及程式中會用到的 Environment Variable 等等 ex: runtime: go env: flex service: my-server env_variables: RUNMODE: stage automatic_scaling: min_num_instances: 1 max_num_instances: 1 cool_down_period_sec: 120 # default value cpu_utilization: target_utilization: 0.7 resources: cpu: 1 memory_gb: 5 disk_size_gb: 10 volumes: - name: ramdisk1 volume_type: tmpfs size_gb: 0.5 App.yaml 裡有一個欄位 env 可以用來指定即將部屬的環境 env: flex 這邊要注意的是 GAE 提供兩種不同的部屬環境 Standard 以及 Flexible 可以選擇 Standard V.S Flexible Environment ...

如何移植實體機上的Windows 10到 Hyper-V VM - Move Windows 10 From PC to Hyper-V VM

前言 自Windows 7之後多了一個有趣備份的功能, 可以將目前的環境壓成一個VHD檔保存, 將來可以用它來作還原 除此之外這份VHD檔還可以被Hyper-V 的虛擬機器掛載起來使用(達到移植的目的) 以下就示範如何使用這個技術來將實體機上的環境遷移到虛擬機器上跑... Step 1. 首先把目前環境壓成VHD wbAdmin start backup -backupTarget:F: -include:C: -allCritical -quiet 結束之後目的地會多一個資料夾WindowsImageBackup -----------------------------------開始移植--------------------------------------- Step 2. Create a Virtual Machine 使用PowerShell來建立VM New-VM -Name Win10VM -MemoryStartupBytes 8GB -BootDevice VHD -Path .\VMData -Generation 2 Step 3. Attach OS Image 這個步驟中我們需要掛載Windows作業系統的安裝光碟, 待會需要在安裝環境下建立開機檔案 用以下的指令來掛載 Add-VMDvdDrive -VMName Win10VM -Path "D:\OSCD_W10 RS2 Professional_64_EN [for DriverCD].iso" Step 4. Attach our backed VHD 在.\WindowsImageBackup\<PC名稱>\Backup 的目錄底下可以找到Step 1.備份出來的VHD檔(.vhdx) 把VHD掛到VM上 Add-VMHardDiskDrive -VMName Win10VM -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 1 -Path "D:\backup\WindowsImageBackup\ANDY-PC...

十分鐘學會Kubernetes基本概念

What is Kubernetes 自從Google開源了Kubernetes(簡稱k8s)之後, k8s 已經成為目前最受歡迎的容器管理工具與調度平台, 現在不管在哪個雲端服務商Google, Microsoft, 或是Amazon 的布道大會上, 一定會有個議程在談k8s, 由此可見它的受歡迎程度相當的高 雖然k8s很受歡迎, 但實際上它並不是這麼好學的工具, 裏頭的觀念非常非常的多, 不可能一時片刻就完全學起來, 因此這篇文章將會著重在某些重點觀念上, 帶著大家簡單的了解k8s的基本功能與基本操作 為了簡化安裝步驟, 以下的教學將會使用minikue來讓大家體驗k8s Minikube 是一種閹割版的k8s, 由於安裝步驟非常簡單, 所以常常被用來當成入門k8s的工具 安裝步驟 使用Ubuntu 18.04 sudo apt update 安裝KVM會用到的套件 minikube會在宿主機上起一個vm跑k8s的相關服務, 所以我們必須安裝kvm相關套件 sudo apt install \ qemu-kvm \ libvirt-clients \ libvirt-daemon-system \ bridge-utils \ virt-manager 將使用者加入libvirt群組 讓一般使用者有權限執行 sudo usermod -a -G libvirt $(whoami) 安裝kubectl kubectl是kubenetes的管理工具 sudo snap install kubectl --classic 開始建立minikube curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube \ && sudo cp minikube /usr/local/bin/ \ && rm minikube 安裝KVN2 driver curl -Lo docker-machine-driver-kvm2 h...

Windows Container VS Linux Container

前言 若有在Windows上安裝docker 的經驗的話, 相信一定有看到過以下的畫面, 問你要不要使用Windows 的container Use Windows containers instead of Linux containers (this can be changes after installation) 這是 Windows上才有的功能, 由於微軟非常積極的想推廣他們家的產品, 所以開發了Windows版本的container 目前在docker hub上能拉下來的image還是以Linux為核心的container占大多數, 若單純只是想跑Python 或是 Node js, 基本上不用特別去使用Windows container 除非是想跑.NET的程式那就令當別論了, Windows container絕對會是首選 Switch to Linux Containers\Windows Containers 基本上想要用Windows container還是Linux container 其實可以在安裝完後自由地作切換,  由於Docker 是個Client\Server的架構, 我們在命令列上下的Docker指令, 其實就是在操作Docker Client, 而Docker Client會去跟Docker Server(Docker Engine)溝通, 比如叫它去建立Image或是停止一個container instance 在安裝完Docker For Windows之後, 除了Windows 的Docker Server之外, Windows上會多建一個Linux的虛擬機器提供Docker Server讓我們可以去使用Linux 的container 打開Hyper-V可以看到Docker安裝包幫我們建立的Linux虛擬機器 確認目前Docker Client是連接到哪個Docker Server 我們可以使用以下指令來確認 docker version 目前Client是連接到Windows 的Docker Server 若在這個時候想...

如何設定VM的網路(Hyper V)

在我們架好VM, 灌好OS之後, 或許會想要讓VM可以聯網去更新套件, 或者是下載Python, Node JS 等等, 以下的幾個步驟設定完之後, 就可以讓VM聯網了 首先, 打開Virtual Switch Manager 接下來, 點選 Create Virtual Network 最後按OK 套用你剛剛建立的Virtual Switch到VM,