Kubernetes是什麼?
Kubernetes (K8s) 是開源的集羣管理工具,用來管理集羣中容器對象,自動實現負載均衡。
前言
Windows 10 Docker的環境搭建
https://blog.csdn.net/hanjupiter/article/details/100173356
在Linux系統中,使用kubeadmin來管理多個集羣節點。 例如:一個master主機,兩個node節點,組成1個對外的主機
在Windows系統中,使用minikube 來進行單節點模式管理集羣
在微服務中,將各個接口剝離開後,將每一個業務接口按照業務量的多少 來創建多個容器,在Kubernetes 中自動實現負載均衡 在相同容器間的訪問資源。
如:傳統形式下,創建2臺主機,將所有的業務(登錄,用戶數據查詢,下單等)通過一個war 部署到tomcat中,由於主機的接口是唯一的,當登錄和用戶數據查詢接口被大量訪問時,會造成大量資源被佔用,此時想增加tomcat服務,需要修改代理服務設定,才能響應。
而在Kubernetes 中,可以將各接口按使用量來創建對應個數的容器,負載均衡的方式進行訪問,如登錄 8個容器,用戶數據查詢 10個容器,下單 5 的容器,這時當大量的用戶數據查詢發生時,也不會將其他的業務影響到,並且如果某個業務的容器資源佔用率高時,可以隨時添加新的容器,與原來的容器組進行合併,擴大負載均衡容器的數量,保證業務穩定運行,對外的接口不需要進行變更。
在一個集羣中,通過Kubernetes ,來創建容器集羣(POD),service。外部網絡調用到service,service調用POD中的docker容器。
1.官方鏈接
1.kubernetes官網中minikube安裝文檔 網址跳轉
2.minikube官方文檔 網址跳轉
2.下載
minikube官網 下載地址跳轉
下載方式有2種:
- 使用windows 安裝器
minikube-installer.exe
- 使用直連的方式,進入到GIT項目中,進行下載
minikube-windows-amd64
下載方式1
在GIT中找到minikube-installer.exe的安裝包,進行下載
當前下載的是v1.6.2版本
下載地址:v1.6.2-minikube-installer
下載後的文件
下載方式2
不進行介紹
3創建minikube集羣
文檔鏈接 啓動minikube
準備:
創建hyper-v的虛擬網卡,指向到本機的網卡上
1.開始中搜索hyper-v,並打開Hyper-V管理器
2.打開虛擬交換機管理器
3.創建虛擬交換機,選擇外部
minikube服務器與主機爲同一個網段,並且設定靜態IP後,重啓電腦後,依然可以正確訪問,否則重啓電腦後,IP地址發生變更,無法訪問。
4 虛擬交換機設定名稱,當前設定的是minikube-net(此時主機及虛擬機會共享此IP地址)
3.在虛擬網卡中,添加虛擬網卡的DNS。
3.1 啓動 Minikube 並創建一個集羣(kubernetes版本號1.16)
※當前最新版本爲1.17,由於鏡像效驗問題,無法正確安裝,則使用1.16版本
minikube start --vm-driver=hyperv --memory=4096 --disk-size='30000mb' --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers" --hyperv-virtual-switch="minikube-net" --kubernetes-version v1.16.0
解釋:
minikube start 創建默認集羣/啓動已經關閉的默認集羣
--vm-driver=hyperv 指定虛擬機類型,win10是hyperv
--memory=4096 指定服務器的內存大小至4GB,參考下記的問題4,默認爲2GB
--disk-size='30000mb' 多個鏡像及容器啓動佔用大量磁盤,初始值增大服務器的磁盤容量
--image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers" 鏡像下載地址重定向,參考下記的問題1和2
--hyperv-virtual-switch="minikube-net" 使用指定的虛擬交換機
--kubernetes-version v1.16.0 指定的kubernetes版本
安裝時間非常漫長,當提示kubeadm,kubelet 下載失敗後,使用問題3的解決方案即可。
3.2 虛擬機驅動名稱一覽
3.3 設定hyperv默認驅動器
minikube config set vm-driver hyperv
3.4 集羣內存設定
minikube 默認內存設定爲2G,擴大內存命令
minikube config set memory 4096
3.5 問題一覽
使用默認啓動命令時,會遇到下面的問題
minikube start --vm-driver=hyperv
問題1
minikube系統 下載速度慢
或者無法下載minikube.iso
解決方案
登錄minikube的git庫,下載指定版本的鏡像文件,例如:當前提示爲minikube-v1.7.0.iso
保存到用戶下的緩存路徑中,例如:C:\Users\Administrator.minikube\cache\iso
https://github.com/kubernetes/minikube/releases
問題2
無效的內存地址或空指針異常
解決方案:
鏡像及容器替代路徑:
--image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers"
問題3
kubeadm 和 kubele聯網下載失敗
問題3的解決方案:
使用第三方工具進行下載,存儲至user下的{user}.minikube\cache\v1.16.0文件夾中
例如:
C:\Users\Administrator\.minikube\cache\v1.16.0
kubeadm http://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/amd64/kubeadm
kubelet http://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/amd64/kubelet
存儲路徑:
再次啓動minikube,成功安裝
minikube start --vm-driver=hyperv --memory=4096 --disk-size='30000mb' --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers" --hyperv-virtual-switch="minikube-net" --kubernetes-version v1.16.0
問題4
apiserver無法響應
1.未重啓WIN10系統的場合,minikube服務器的IP地址沒有發生變更
解決方法:
增大 minikube 服務器的內存
--memory=8192
2.重啓WIN10系統的場合,hyper-v的內部虛擬網卡及minikube的服務器的IP地址發生了變更。
解決方法:
需要minikube綁定靜態IP地址,設定指定Vlan的虛擬網卡
--hyperv-virtual-switch="minikube-net"
IP地址恢復
minikube ssh "sudo ifconfig eth0:0 IP地址"
例如:minikube ssh "sudo ifconfig eth0:0 192.168.1.105"
問題5
1.7.0版本的minikube工具,無法正確創建minikube的服務器主機
提示錯誤:
'minikube delete': create: provisioning: Temporary Error: mkdir -p C:\Users\Administrator\.minikube: exec: "mkdir": executable file not found in %PATH%
解決方案
使用1.6.2版本的minikube工具
下載地址:v1.6.2-minikube-installer
3.6 啓動minikube控制檯
生成kubernetes控制檯網址
minikube dashboard
※1.重啓電腦/退出當前命令行,網頁無法進行訪問,需要重新生成url地址
使用網址登錄到kubernetes網頁控制檯
在Nodes選項卡中,minikube的集羣節點已經創建
3.7 查詢minikube集羣中已經下載的容器鏡像
登錄到集羣
minikube ssh
查看集羣中已經下載的鏡像
docker images
minikube安裝基礎環境包
路徑:/var/lib/minikube/images/
3.8 刪除minikube集羣節點
minikube delete
3.9 查看minikube集羣節點狀態
minikube status
3.10 查看kubernetes集羣節點(node)狀態
kubectl get node
3.10 查看kubernetes集羣節點組件
kubectl get pod -n kube-system
3.11 停止minikube集羣節點
minikube stop
3.12 創建新的minikube集羣節點
minikube start -p 集羣節點名稱
3.13 重啓已經存在的minikube集羣節點
默認集羣
minikube start --vm-driver=hyperv --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers" --kubernetes-version v1.16.0
指定名稱的集羣
minikube start -p 集羣名稱 --vm-driver=hyperv --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers" --kubernetes-version v1.16.0
3.14 配置minikube的docker鏡像加速
由於minikube中下載registry-1.docker.io/v2/library/站點中的docker鏡像非常緩慢,導致創建容器失敗,需要配置docker的加速配置
※注:不要配置本地倉庫 insecure-registries,因爲/lib/systemd/system/docker.service文件中已經有相關的配置,如果重複設定會導致docker重啓失敗。
1.登錄到minikube中
minikube ssh
2.切換到/etc/docker/路徑下
$ cd /etc/docker/
3.切換到root權限
$ sudo su root
4.創建並編寫daemon.json文件
$ cat > daemon.json <<EOF
5.提示 > 時,粘貼下面的配置
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
"https://dockerhub.azk8s.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}
6.輸入EOF ,退出並保存
>EOF
7.重啓docker
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker