kubernetes部署-基于docker desktop
转载请注明出处即可
所使用的环境为macos
零、安装前准备工作
(1) 安装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官网进行下载
安装后,配置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操作都可以在这个集群上验证了。
预计后续文章