Skip to content

kubernetes部署 基于docker desktop By 泽东

小傅哥 edited this page Apr 26, 2020 · 2 revisions

零、安装前准备工作

(1) 安装brew

brew

执行以下指令安装

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

切换国内mirror

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

替换Homebrew Bottles源

对于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

点击此链接docker官网进行下载 image.png

安装后,配置registry mirror地址 Preferences -> Docker Engine docker官网

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] 

二、根据版本下载k8s需要的images

在关于中查看k8s的版本 docker菜单 docker关于

然后创建一个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等待一段时间即可。

三、调整资源供k8s使用

点击Preferences -> Resources,建议至少提供8G内存供k8s使用 资源调整

四、切换context

如果在本机搭建了多个集群,需要切换context到docker-desktop上

k config get-contexts

执行后如下图 查看contexts

执行切换指令

k config use-context docker-desktop

五、开启k8s

Preferences -> Resources -> Kubernetes (Enable Kubernetes) 点击请需要等待一段时间, 还需要pull一些csi等images。

六、验证安装成功

执行以下指令

k get nodes

可以看到, docker-desktop的status为Ready 查看nodes

七、基于minikube部署k8s

执行以下指令

brew install minikube
minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

启动后查看状态

minikube status

如果状态正常,记得切换kubectl的context。

八、部署一个简单的pod,并验证

部署一个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在创建中 查看pods

k describe pod kubia

可以看到正在pull image 查看pod详情

pod运行成功后状态为Running 查看Pod

可以查看pod的详细信息

k get po kubia -o yaml

查看pod详细的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

查看services

在浏览器上输入 http://localhost 验证部署

大功告成,部署成功,至少有90%的k8s操作都可以在这个集群上验证了。



预计后续文章 ### 下一篇,在centos7的3个节点部署k8s ### 下下篇,在docker desktop部署Istio

📝 首页

🌏 知识星球码农会锁

实战项目:「DDD+RPC分布式抽奖系统」、专属小册、问题解答、简历指导、架构图稿、视频课程

🐲 头条

⛳ 目录

  1. 源码 - :octocat: 公众号:bugstack虫洞栈 文章所涉及到的全部开源代码
  2. Java
  3. Spring
  4. 面向对象
  5. 中间件
  6. Netty 4.x
  7. 字节码编程
  8. 💯实战项目
  9. 部署 Dev-Ops
  10. 📚PDF 下载
  11. 关于

💋 精选

🐾 友链

建立本开源项目的初衷是基于个人学习与工作中对 Java 相关技术栈的总结记录,在这里也希望能帮助一些在学习 Java 过程中遇到问题的小伙伴,如果您需要转载本仓库的一些文章到自己的博客,请按照以下格式注明出处,谢谢合作。

作者:小傅哥
链接:https://bugstack.cn
来源:bugstack虫洞栈

2021年10月24日,小傅哥 的文章全部开源到代码库 CodeGuide 中,与同好同行,一起进步,共同维护。

这里我提供 3 种方式:

  1. 提出 Issue :在 Issue 中指出你觉得需要改进/完善的地方(能够独立解决的话,可以在提出 Issue 后再提交 PR )。
  2. 处理 Issue : 帮忙处理一些待处理的 Issue
  3. 提交 PR: 对于错别字/笔误这类问题可以直接提交PR,无需提交Issue 确认。

详细参考:CodeGuide 贡献指南 - 非常感谢你的支持,这里会留下你的足迹

  • 加群交流 本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “小傅哥” 微信(fustack),备注:加群。
微信:fustack

  • 公众号(bugstack虫洞栈) - 沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获。
公众号:bugstack虫洞栈

感谢以下人员对本仓库做出的贡献或者对小傅哥的赞赏,当然不仅仅只有这些贡献者,这里就不一一列举了。如果你希望被添加到这个名单中,并且提交过 Issue 或者 PR,请与我联系。

Clone this wiki locally