如何在 Windows 操作系统上安装单机版 Kubernetes(K8s)

步骤1:安装 Docker Desktop 4.16.3

在 Windows 上安装 Kubernetes 之前,你需要先安装 Docker Desktop。这可以在 Docker 的官方网站上找到并下载。
下载地址: https://desktop.docker.com/win/main/amd64/96739/Docker%20Desktop%20Installer.exe
Docker Desktop 4.16.3对应的k8s版本为 Kubernetes: v1.25.4如下图:

国内访问githubusercontent需要在 C:WindowsSystem32driversetchost 中追加如下

199.232.68.133 raw.githubusercontent.com


步骤2:下载Kubernetes需要的镜像

先安装 Cygwin64 Terminal 允许在window环境下运行sh脚本,然后创建 load_images.sh 脚本,内容如下:

#!/bin/bash
#Docker Desktop:v4.16.3、Kubernetes: v1.25.4

#配置数组数据  array=("A" "B")
array=("registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/desktop-kubernetes:kubernetes-v1.25.4-cni-v1.1.1-critools-v1.25.0-cri-dockerd-v0.2.6-1-debian=hubproxy.docker.internal:5000/docker/desktop-kubernetes:kubernetes-v1.25.4-cni-v1.1.1-critools-v1.25.0-cri-dockerd-v0.2.6-1-debian" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/kube-apiserver:v1.25.4=registry.k8s.io/kube-apiserver:v1.25.4" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/kube-controller-manager:v1.25.4=registry.k8s.io/kube-controller-manager:v1.25.4" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/kube-proxy:v1.25.4=registry.k8s.io/kube-proxy:v1.25.4" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/kube-scheduler:v1.25.4=registry.k8s.io/kube-scheduler:v1.25.4" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/etcd:3.5.5-0=registry.k8s.io/etcd:3.5.5-0" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/pause:3.8=registry.k8s.io/pause:3.8" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/coredns:v1.9.3=registry.k8s.io/coredns/coredns:v1.9.3" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/desktop-vpnkit-controller:v2.0=docker/desktop-vpnkit-controller:v2.0" "registry.cn-hangzhou.aliyuncs.com/kubernetes_v1-25-4/desktop-storage-provisioner:v2.0=docker/desktop-storage-provisioner:v2.0")

for item in ${array[@]}
do
    OLD_IFS="$IFS"      #保存当前shell默认的分割符,一会要恢复回去
    IFS="="             #将shell的分割符号改为,“”
    itemArr=($item)     #分割符是“,”,"hello,shell,split,test" 赋值给array 就成了数组赋值
    IFS="$OLD_IFS"      #恢复shell默认分割符配置
    #echo "${itemArr[0]}=${itemArr[1]}"    #读取数据
    
    docker pull ${itemArr[0]}
    docker tag ${itemArr[0]} ${itemArr[1]}
    docker rmi ${itemArr[0]}
done

然后去除Window环境下编辑Shell脚本的r,打开Cygwin64 Terminal进入到load_images.sh同级目录运行

sed -i 's/r//' load_images.sh

PS:小编已经把window环境下的k8s需要的镜像提交国内镜像上,使用本脚本下载速度要快许多。也可自行搜索镜像下载

步骤3:安装Kubernetes

等docker镜像下载完后进入Docker Desktop ->Settings -> Kubernetes ->勾选 Enable Kubernetes 然后点击 Apply & Restart,等待如下图:


当左下角K8s图标变绿了说明安装成功,如下图:


打开Cygwin64 Terminal输入如下验证版本是否安装成功

kubectl version

如下图:



步骤4:安装 Kubernetes 仪表板

一旦 Kubernetes 启动,你可以通过访问 Kubernetes 仪表板来管理你的 Kubernetes 环境。你可以使用以下命令访问 Kubernetes 仪表板:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml #下载recommended.yaml

然后编辑#备注部分

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort		#设定NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 31443		#设定为固定端口
  selector:
    k8s-app: kubernetes-dashboard
...
args:
    - --auto-generate-certificates
    - --token-ttl=86400                 #增加 (修改kubernetes-dashboard默认token认证时间)
    - --namespace=kubernetes-dashboard
...
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml  #安装Dashboard
kubectl get pod -n kubernetes-dashboard  #查看是否在运行
kubectl apply -f kube-system-default.yaml  #添加默认账号
kubectl get pods -n kube-system  #查看pods情况
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml  #必须安装Pod网络CNI插件
kubectl get pods -n kube-system  #查看 pods 情况
kubectl proxy --port=8001  #启动dashboard服务
kubectl -n kube-system describe secret default   #获取Token

启动dashboard服务后再浏览器输入:
http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login #查看Dashboard服务。如下图:

步骤5:安装hello world 测试

kubectl create deployment web --image=linkinstar/mini-go:v1.0 #创建镜像
kubectl get pods
kubectl expose deployment web --type=NodePort --port=8080 --name=web #暴露端口
kubectl get svc #查看启动服务
curl http://127.0.0.1: #验证服务器是否能正常访问 例如 curl http://127.0.0.1:30418

PS:返回 hello world
netstat -anp | grep 8080 #查看占用端口 或 lsof -i :8080
kill #结束进程

展开阅读全文

页面更新:2024-05-01

标签:仪表板   赋值   数组   端口   脚本   步骤   操作系统   编辑   版本   情况   环境

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top