轉(zhuǎn)載請注明出處即可
所使用的環(huán)境為macos
零持舆、安裝前準(zhǔn)備工作
(1) 安裝brew
執(zhí)行以下指令安裝
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
切換國內(nèi)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
最后執(zhí)行
brew update
(2) 安裝kubectl
brew install kubectl
建議給指令設(shè)置別名
echo 'alias k=kubectl' >> ~/.zshrc 或者 ~/.bash_profile
一笼痛、安裝docker
點(diǎn)擊此鏈接docker官網(wǎng)進(jìn)行下載
安裝后,配置registry mirror地址
Preferences -> Docker Engine
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
二宙刘、根據(jù)版本下載k8s需要的images
在關(guān)于中查看k8s的版本
然后創(chuàng)建一個(gè)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
創(chuàng)建后請執(zhí)行缚窿,并等待以上image下載成功
當(dāng)然在網(wǎng)絡(luò)條件好的情況下写烤,也可以直接忽略這步,直接在Preferences -> Kubernetes點(diǎn)擊Enable Kubernetes等待一段時(shí)間即可禽捆。
三笙什、調(diào)整資源供k8s使用
點(diǎn)擊Preferences -> Resources,建議至少提供8G內(nèi)存供k8s使用
四胚想、切換context
如果在本機(jī)搭建了多個(gè)集群琐凭,需要切換context到docker-desktop上
k config get-contexts
執(zhí)行后如下圖
執(zhí)行切換指令
k config use-context docker-desktop
五、開啟k8s
Preferences -> Resources -> Kubernetes (Enable Kubernetes)
點(diǎn)擊請需要等待一段時(shí)間, 還需要pull一些csi等images浊服。
六统屈、驗(yàn)證安裝成功
執(zhí)行以下指令
k get nodes
可以看到, docker-desktop的status為Ready
七、基于minikube部署k8s
執(zhí)行以下指令
brew install minikube
minikube start --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
啟動(dòng)后查看狀態(tài)
minikube status
如果狀態(tài)正常牙躺,記得切換kubectl的context愁憔。
八、部署一個(gè)簡單的pod孽拷,并驗(yàn)證
部署一個(gè)pod
在低版本上可以通過以下指令來部署吨掌,但在高版本上generator已經(jīng)被廢棄
k run kubia --image=luksa/kubia --port=8080 --generator=run/v1
這條指令執(zhí)行后在高版本會(huì)出現(xiàn), 并且不會(huì)創(chuàng)建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
執(zhí)行指令部署
k apply -f kubia-test.yaml
執(zhí)行
k get pods
或者
k get po
可以看到當(dāng)前pod在創(chuàng)建中
k describe pod kubia
可以看到正在pull image
pod運(yùn)行成功后狀態(tài)為Running
可以查看pod的詳細(xì)信息
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文件并執(zhí)行
k apply -f kubia-service.yaml
查看service狀態(tài)
k get svc
或者
k get service
在瀏覽器上輸入 http://localhost
大功告成,部署成功脓恕,至少有90%的k8s操作都可以在這個(gè)集群上驗(yàn)證了膜宋。
預(yù)計(jì)后續(xù)文章