- Notifications
You must be signed in to change notification settings - Fork 4.1k
kubernetes部署 基于docker desktop By 泽东
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" cd "$(brew --repo)" git remote set-url origin git://mirrors.ustc.edu.cn/brew.git cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git 对于bash用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile source ~/.bash_profile 对于zsh用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc source ~/.zshrc brew update (2) 安装kubectl
brew install kubectl echo 'alias k=kubectl' >> ~/.zshrc 或者 ~/.bash_profile 点击此链接docker官网进行下载 
安装后,配置registry mirror地址 Preferences -> Docker Engine 
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] 在关于中查看k8s的版本

然后创建一个shell脚本,并将以下版本号修改, 和保持docker desktop一致
#!/bin/bash images=( kube-apiserver:v1.16.5 kube-controller-manager:v1.16.5 kube-scheduler:v1.16.5 kube-proxy:v1.16.5 pause:3.1 etcd:3.3.15-0 coredns:1.6.2 ) for imageName in ${images[@]} ; do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName done创建后请执行,并等待以上image下载成功 当然在网络条件好的情况下,也可以直接忽略这步,直接在Preferences -> Kubernetes点击Enable Kubernetes等待一段时间即可。
点击Preferences -> Resources,建议至少提供8G内存供k8s使用 
如果在本机搭建了多个集群,需要切换context到docker-desktop上
k config get-contexts执行后如下图 
执行切换指令
k config use-context docker-desktopPreferences -> Resources -> Kubernetes (Enable Kubernetes) 点击请需要等待一段时间, 还需要pull一些csi等images。
执行以下指令
k get nodes 可以看到, docker-desktop的status为Ready 
执行以下指令
brew install minikube minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' 启动后查看状态
minikube status 如果状态正常,记得切换kubectl的context。
部署一个pod 在低版本上可以通过以下指令来部署,但在高版本上generator已经被废弃
k run kubia --image=luksa/kubia --port=8080 --generator=run/v1 这条指令执行后在高版本会出现, 并且不会创建rc
Flag --generator has been deprecated, has no effect and will be removed in the future. 所以需要通过yaml文件来部署pod
apiVersion: v1 kind: Pod metadata: name: kubia labels: app: kubia spec: containers: - image: luksa/kubia name: kubia ports: - containerPort: 8080 protocol: TCP保存文件为kubia-test.yaml
执行指令部署
k apply -f kubia-test.yaml 执行
k get pods 或者 k get po 可以看到当前pod在创建中 
k describe pod kubia 可以看到正在pull image 
pod运行成功后状态为Running 
可以查看pod的详细信息
k get po kubia -o yaml 
添加service
apiVersion: v1 kind: Service metadata: name: kubia-service spec: ports: - name: http port: 80 protocol: TCP targetPort: 8080 selector: app: kubia type: LoadBalancer保存kubia-service.yaml文件并执行
k apply -f kubia-service.yaml 查看service状态
k get svc 或者 k get service 
在浏览器上输入 http://localhost 
大功告成,部署成功,至少有90%的k8s操作都可以在这个集群上验证了。
预计后续文章 ### 下一篇,在centos7的3个节点部署k8s ### 下下篇,在docker desktop部署Istio
小傅哥(微信:fustack),公众号:bugstack虫洞栈 | bugstack.cn - 沉淀、分享、成长,让自己和他人都能有所收获!
🌏 知识星球:码农会锁
实战项目:「DDD+RPC分布式抽奖系统」、专属小册、问题解答、简历指导、架构图稿、视频课程
🐲 头条
- 💥
🎁 Lottery 抽奖系统- 基于领域驱动设计的四层架构的互联网分布式开发实践 -
小傅哥的《重学 Java 设计模式》- 全书彩印、重绘类图、添加内容 -
⭐小傅哥的《Java 面经手册》- 全书5章29节,417页11.5万字,完稿&发版 -
小傅哥的《手撸 Spring》- 通过带着读者手写简化版 Spring 框架,了解 Spring 核心原理 -
🌈小傅哥的《SpringBoot 中间件设计和开发》- 小册16个中间件开发30个代码库
⛳ 目录
💋 精选
🐾 友链
建立本开源项目的初衷是基于个人学习与工作中对 Java 相关技术栈的总结记录,在这里也希望能帮助一些在学习 Java 过程中遇到问题的小伙伴,如果您需要转载本仓库的一些文章到自己的博客,请按照以下格式注明出处,谢谢合作。
作者:小傅哥 链接:https://bugstack.cn 来源:bugstack虫洞栈2021年10月24日,小傅哥 的文章全部开源到代码库 CodeGuide 中,与同好同行,一起进步,共同维护。
这里我提供 3 种方式:
- 提出
Issue:在 Issue 中指出你觉得需要改进/完善的地方(能够独立解决的话,可以在提出 Issue 后再提交PR)。 - 处理
Issue: 帮忙处理一些待处理的Issue。 - 提交
PR: 对于错别字/笔误这类问题可以直接提交PR,无需提交Issue确认。
详细参考:CodeGuide 贡献指南 - 非常感谢你的支持,这里会留下你的足迹
- 加群交流 本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “小傅哥” 微信(fustack),备注:加群。
- 公众号(bugstack虫洞栈) - 沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获。
感谢以下人员对本仓库做出的贡献或者对小傅哥的赞赏,当然不仅仅只有这些贡献者,这里就不一一列举了。如果你希望被添加到这个名单中,并且提交过 Issue 或者 PR,请与我联系。