最新DockerDesktop下使用k8s

1,安装dockerdesktop DokerDesktop For Windows

2,启用k8s

 3,安装Kubernetes Dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml

4,角色权限绑定

kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard

5,获取登录token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

6,打开代理

kubectl proxy

7,浏览登录

浏览器打开:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/loginsss

输入token登录

 

 8,部署一个nginx pod测试

kubectl create  deployment  nginx-app   --image=nginx   --replicas=2

--image=nginx 拉取最新nginx

 --replicas=2    设置启动两个容器

*还可以使用xxx.yaml文件的方式创建

9,查看pod部署信息

kubectl get pod -o wide

10, 暴露服务

kubectl expose pods podName --type=NodePort --name nginx-test

podName 第9,查询到的name

*还可以通过LoadBalancer方式暴露服务,有可能一直处于pending状态,外部无法访问。自建的 Kubernetes 集群暴露让外网访问,目前只能使用 NodePort 或 Ingress 等的方法进行服务暴露,或者使用MetalLB。

11,浏览器方式

*端口32023查看方式,也可在yaml文件中更改

kubectl get deployment,svc -o wide

12,常用命令

---一般
创建一个pod 
kubectl apply -f pod.yaml

kubectl get pod   查看pod,运行pod失败

删除一个pod
kubectl delete pod web-server-7b84dd448c-99chq

查看一个pod实例信息
kubectl describe pod web-server-7b

查看deployment--你创建的pod就属于某个deployment
kubectl get deployment

删除一个deployment,其实就是删除了你的服务,一个服务下有多个pod,直接删除会自动补充
kubectl delete deployment web-server

创建一个secret
kubectl create secret generic izorro-docker-io --from-file .\1234.txt

创建一个dockerconfigjson 用于
kubectl create secret docker-registry myregistrykey --docker-server=hub.docker.io --docker-username=xxxx --docker-password=xxxxx --docker-email=xxx@xx.com

删除一个secret
kubectl delete secret myregistrykey


---系统信息
#查看集群信息
kubectl cluster-info

#查看集群版本
kubectl version

#查看集群api版本
kubectl api-versions


---命名空间 namespaces
1,查看所有
kubectl get namespace

2,获取某一个namespace下的pod
kubectl get pods -n kube-system 

更多信息请查看 博客 或者关注公众号:Z技术

Docker Desktop使用 Kubernetes 时,网络不通的问题通常与 Docker Desktop 的虚拟化机制、网络插件配置以及 Kubernetes 的本地环境限制有关。由于 Docker Desktop 使用虚拟化技术(如 WSL2 或 Hyper-V)来运行 Linux 容器,其网络栈与原生 Linux 系统存在差异,因此在部署服务时可能遇到网络访问问题。 ### 常见问题与解决方法 #### 1. **确认 Kubernetes 是否正常运行** 确保 Docker Desktop 中的 Kubernetes 功能已成功启用。可在系统托盘中查看 Kubernetes 状态,或通过命令行验证: ```powershell kubectl cluster-info ``` 如果显示连接异常或无法访问 kubeconfig 文件,可以尝试删除 `.kube/config` 文件并重启 Docker Desktop [^2]。 #### 2. **网络插件缺失或配置错误** Docker Desktop 默认不安装 CNI 网络插件(如 Calico、Flannel 或 Weave),这可能导致 Pod 间网络不通。需要手动部署网络插件。例如,使用 Flannel: ```powershell kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 部署完成后,检查 Pod 状态以确认网络插件是否正常运行: ```powershell kubectl get pods -n kube-system ``` #### 3. **hostNetwork: true 无法访问本地服务** 在 Windows 上的 Docker Desktop使用 `hostNetwork: true` 时,容器将共享主机网络命名空间,但由于虚拟化层的存在,容器无法直接通过 `localhost` 访问宿主机服务 [^3]。建议使用以下替代方案: - **使用 host.docker.internal**:这是 Docker 提供的特殊 DNS 名称,指向宿主机的网关地址,适用于从容器访问宿主机服务。 - **避免使用 `hostNetwork: true`**:在 Windows 环境中,使用默认的 Pod 网络并配合 Kubernetes Service(如 NodePort 或 ClusterIP)进行通信更为稳定。 #### 4. **检查服务暴露方式** 如果部署了服务但无法访问,应检查服务类型是否正确配置。例如,使用 `NodePort` 类型可将服务暴露到宿主机端口: ```yaml apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 nodePort: 30080 ``` 部署后可通过 `http://localhost:30080` 访问服务。 #### 5. **检查 WSL2 网络限制** 如果使用 WSL2 后端,需注意其网络配置可能导致服务无法从 Windows 主机访问。可以尝试在 WSL2 内运行以下命令查看服务 IP: ```bash kubectl get svc ``` 然后在 WSL2 中使用 `curl` 测试服务是否可达: ```bash curl http://<service-ip>:<port> ``` 若服务在 WSL2 中可访问但无法从 Windows 主机访问,可能是防火墙或端口映射问题。 #### 6. **清理缓存与重置环境** 若上述方法无效,可尝试以下步骤重置环境: - 删除 `.kube/config` 文件并重启 Docker Desktop [^2]。 - 清理 Kubernetes 缓存: ```powershell kubectl config unset current-context kubectl config delete-context docker-desktop ``` - 重新启用 Kubernetes 功能或重新加载镜像。 --- ###
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值