20240326 windows搭建k8s環境

燕山督云侠發表於2024-08-16

windows搭建k8s環境

安裝docker-desktop

在介面中找到 /設定/Resources/Advanced/Disk image location,選擇一個非C盤的目錄

利用minikube安裝

已經安裝玩docker-desktop或者virtualbox

參考文件

  • minikube 官方文件
  • https://www.cnblogs.com/yumingkuan/p/16750618.html
  • https://zhuanlan.zhihu.com/p/574759499

1 下載檔案

  • 方式一:直接下載exe安裝
  • 方式二:利用如下命令直接下載安裝
New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'd:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing

d

2 配置環境變數

  • 方式一:直接將minikubo.exe的位置新增到PATH
  • 方式二: 執行如下命令
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'd:\minikube'){
  [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}

3 啟動minikube

minikube start

命令說明

  • vm-driver=docker
  • image-mirror-country=cn : 指定中國
  • image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers:指定用阿里雲的映象倉庫
  • iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso : 這個是指定啟動虛擬機器要用>> 到的iso檔案
  • --registry-mirror=https://reg-mirror.qiniu.com:安裝好之後給裡面的docker加速的

輸出

PS C:\Users\Administrator> minikube start
* Microsoft Windows 11 Pro 10.0.22631.3296 Build 22631.3296 上的 minikube v1.32.0
* 自動選擇 docker 驅動。其他選項:hyperv, ssh
* 使用具有 root 許可權的 Docker Desktop 驅動程式
* 正在叢集 minikube 中啟動控制平面節點 minikube
* 正在拉取基礎映象 ...
    > index.docker.io/kicbase/sta...:  0 B [___________________] ?% ? p/s 500ms
    > index.docker.io/kicbase/sta...:  0 B [___________________] ?% ? p/s 500ms
E0326 11:44:40.652176    1152 cache.go:189] Error downloading kic artifacts:  failed to download kic base image or any fallback image
* Creating docker container (CPUs=2, Memory=4000MB) ...
* 正在 Docker 24.0.7 中準備 Kubernetes v1.28.3…
  - 正在生成證書和金鑰...
  - 正在啟動控制平面...
  - 配置 RBAC 規則 ...
* 配置 bridge CNI (Container Networking Interface) ...
* 正在驗證 Kubernetes 元件...
  - 正在使用映象 gcr.io/k8s-minikube/storage-provisioner:v5
* 啟用外掛: storage-provisioner, default-storageclass
* 完成!kubectl 現在已配置,預設使用"minikube"叢集和"default"名稱空間

開啟控制檯

 minikube dashboard

嘗試部署nginx

  1. 建立yaml檔案
    nginx-deployment.yaml
apiVersion: apps/v1  
kind: Deployment  
metadata:  
  name: nginx-deployment  
spec:  
  replicas: 3  
  selector:  
    matchLabels:  
      app: nginx  
  template:  
    metadata:  
      labels:  
        app: nginx  
    spec:  
      containers:  
      - name: nginx  
        image: nginx  # 這裡使用映象名,Kubernetes會嘗試從本地Docker快取中拉取  
        ports:  
        - containerPort: 80

nginx-service.yaml

apiVersion: v1  
kind: Service  
metadata:  
  name: nginx-service  
spec:  
  selector:  
    app: nginx  
  ports:  
    - protocol: TCP  
      port: 80  
      targetPort: 80  
      nodePort: 30000  # 你可以選擇一個可用的NodePort埠  
  type: NodePort
  1. 應用yaml檔案
kubectl apply -f .

此時30000埠訪問無效
3. 暴露埠

kubectrl port-forward service/nginx-service 30000:80
  1. 訪問http://localhost:30000/

廢棄方式

  1. 嘗試透過docker-desktop的Enable Kubernetes安裝,但是最後啟動失敗或者無法啟動而告終

參考文件

  • https://www.cnblogs.com/SF8588/p/15396966.html
  • https://blog.csdn.net/qq_30648687/article/details/136388270

avatar

相關文章