安装wsl:
Install Linux Subsystem on Windows Server | Microsoft Learn
SecureCRT通过ssh连接wsl_securecrt login wsl-优快云博客
minikube 安装:
mkdir minikube
cd minikube/
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
sudo install minikube-linux-amd64 /usr/local/bin/minikube
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
minikube start
kubectl get nodes
如果有多个k8s环境使用命令切换:
kubectl config use-context minikube
查看 ip:
minikube ip # 一般是 192.168.49.2
安装完之后在 kubectl get nodes( node 就是 container)
使用 docker exec -it <node name> bash 进行容器
demo:
apiVersion: apps/v1 # deployment api 版本
kind: Deployment # 资源类型为 deployment
metadata: # 元信息
labels: # 标签
app: nginx-deploy # 具体的 key: value 配置形式
name: nginx-deploy # deployment 的名字
spec:
replicas: 2 # 期望副本数
revisionHistoryLimit: 10 # 进行滚动更新后,保留的历史版本数
selector: # 选择器,用于找到匹配的 RS
matchLabels: # 按照标签匹配
app: nginx-deploy # 匹配的标签key/value
template: # pod 模板
metadata: # pod 的元信息
labels: # pod 的标签
app: nginx-deploy
spec: # pod 期望信息
containers: # pod 的容器
- image: redis # 镜像
imagePullPolicy: IfNotPresent # 拉取策略
name: nginx # 容器名称
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx-service
spec:
selector:
app: nginx-deploy
ports:
- port: 16379
targetPort: 6379
name: nginx-web
type: NodePort
===连接这个 service (端口 32115 映射再连)
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 95m <none>
service/nginx-service NodePort 10.103.93.96 <none> 16379:32115/TCP 39m app=nginx-deploy
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-deploy-66664ff7bf-42pww 1/1 Running 0 21s 10.244.0.26 minikube <none> <none>
pod/nginx-deploy-66664ff7bf-rpx46 1/1 Running 0 20s 10.244.0.27 minikube <none> <none>
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/nginx-deploy 2/2 2 2 39m nginx redis app=nginx-deploy