中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

在 MacOS 中使用 multipass 安裝 microk8s 環境

Multipass & MicroK8S 介紹

Kubernetes 是什么?

Kubernetes 集群通過可靠和可擴(kuo)展(zhan)的(de)方式對(dui)容器(qi)化應(ying)用進行托管,使得在 DevOps 思維和體系(xi)中,讓運(yun)維服務、系(xi)統升(sheng)級(ji)等(deng)工(gong)作變(bian)得超級(ji)簡單。

Multipass 是什么?

Multipass 是(shi)一(yi)款可運(yun)行于 Linux、Windows 和 MacOS 的(de)輕量級虛擬機(ji)管理器,它(ta)(ta)專為希望(wang)使用(yong)(yong)單個命令即可啟動全(quan)新(xin)(xin) Ubuntu 環境(jing)的(de)開發(fa)人員而設計。它(ta)(ta)在(zai) Linux 上(shang)使用(yong)(yong) KVM、在(zai) Windows 上(shang)使用(yong)(yong) Hyper-V、在(zai) MacOS 上(shang)使用(yong)(yong) HyperKit,以(yi)便以(yi)最小的(de)開銷運(yun)行虛擬機(ji)。它(ta)(ta)還可以(yi)在(zai) Windows 和 MacOS 上(shang)使用(yong)(yong) VirtualBox。Multipass 將協助你獲取最新(xin)(xin)鏡像(xiang),并持續(xu)保持更新(xin)(xin)。

MicroK8S 是什么?

MicroK8S 是 CNCF 認證的 Kubernetes 部署環境,可(ke)在工作站或邊緣(yuan)設備上運行。作為(wei)一個 snap 包(bao),它(ta)可(ke)以原生的運行所有 Kubernetes 服(fu)務(wu),如果需要還可(ke)以打(da)包(bao)類(lei)庫和二(er)進制文件。它(ta)的安裝僅受限于你的下(xia)載(zai)速(su)度(du),而刪除(chu) MicroK8S 后(hou)不會留下(xia)任何痕跡。

  • 參考:
  • 參考:

安裝 multipass & microk8s

安裝 multipass 服務

brew search multipass
brew cask info multipass
brew cask install multipass
multipass version

通過 multipass 安裝和啟動 microk8s 環境

multipass launch --name microk8s-vm --mem 4G --disk 40G
multipass list
multipass stop microk8s-vm
multipass delete microk8s-vm
multipass purge

在虛機中安裝 microk8s 服務

multipass exec microk8s-vm -- sudo snap install microk8s --classic
multipass exec microk8s-vm -- sudo iptables -P FORWARD ACCEPT

查看 microk8s 的 snap 包信息,比如版本信息

 multipass exec microk8s-vm -- sudo snap info microk8s

增加賬號訪問權限,簡化操作

# 默認 ubuntu 賬號無權限操作集群,均需要 sudo
# 可將 ubuntu 賬號加入 microk8s 用戶組以便簡化訪問
multipass exec microk8s-vm -- sudo usermod -a -G microk8s ubuntu
multipass exec microk8s-vm -- sudo sudo chown -f -R ubuntu ~/.kube

增加訪問公鑰,簡化操作

# 在 ~/.ssh/authorized_keys 增加自己的公鑰,則可方便的進行SSH登錄
multipass shell microk8s-vm
ssh ubuntu@192.168.64.2

查看磁盤空間

multipass exec microk8s-vm -- df -kh

查看 kubeconfig 配置

multipass exec microk8s-vm -- /snap/bin/microk8s.config

在 kubeconfig 中可以找到集群信息,可登錄查看

server: //192.168.64.2:16443
username: admin
password: xxx

增加 DNS 插件,必須安裝,多處依賴使用

multipass exec microk8s-vm -- /snap/bin/microk8s.enable dns
multipass exec microk8s-vm -- /snap/bin/microk8s.enable dashboard

嘗試訪問 Grafana 地址

//192.168.64.2:16443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy

安裝 Dashboard UI

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl apply -f //raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

使用 Bearer Token 進行鑒權訪問

# 為安全考慮,Dashboard UI 需要使用 Bearer Token 進行鑒權訪問,使用如下命令獲取 Token
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl -n kube-system get secret | grep default-token | cut -d " " -f1
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl -n kube-system describe secret default-token-qqt75

訪問 Dashboard UI

//192.168.64.2:16443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

查看集群組件狀態

multipass exec microk8s-vm -- /snap/bin/microk8s.status

可通過指定配置文件進行訪問

# 把kubeconfig保存至本地 /Users/xxx/.kube/microk8s-vm.yml,則可通過指定配置文件進行訪問
kubectl --insecure-skip-tls-verify --kubeconfig="/Users/xxx/.kube/microk8s-vm.yml" get pods --all-namespaces

# 把kubeconfig保存至本地 ~/.kube/config,則可通過指定配置文件進行訪問
kubectl --insecure-skip-tls-verify get pods --all-namespaces

安裝 registry 組件

# The MicroK8s registry will not be enabled by default, so needs run the following to enable it.
multipass exec microk8s-vm -- /snap/bin/microk8s.enable registry

查看集群內組件狀態

multipass exec microk8s-vm -- /snap/bin/microk8s.status | grep enabled
  • 參考:

部署業務應用

業務應用 Demo 代碼

urban-iptable-management # 簡單的IP地址查詢服務,服務自治,無外部依賴
urban-district-management # 簡單的省市區查詢服務,服務自治,無外部依賴
urban-traffic-management # 簡單的模擬服務間調用,依賴 district 服務查詢城市信息
urban-gateway-management # 模擬API網關,將訪問轉發至其他服務
  • Github Repo:

本地 docker image 構建

cd urbanboot

docker build -t urban-iptable-management-app:latest --file ./urban-iptable-management/docker/Dockerfile .
docker build -t urban-district-management-app:latest --file ./urban-district-management/docker/Dockerfile .
docker build -t urban-traffic-management-app:latest --file ./urban-traffic-management/docker/Dockerfile .
docker build -t urban-gateway-management-app:latest --file ./urban-gateway-management/docker/Dockerfile .

刪除無用鏡像

docker images
docker rmi --force $(docker images | grep "^<none>" | awk '{print $3}')
docker images

保存本地鏡像至文件

# Save one or more images to a tar archive
docker save -o urban-iptable-management-app.tar urban-iptable-management-app:latest
docker save -o urban-district-management-app.tar urban-district-management-app:latest
docker save -o urban-traffic-management-app.tar urban-traffic-management-app:latest
docker save -o urban-gateway-management-app.tar urban-gateway-management-app:latest
  • 參考:

拷貝鏡像文件至 microk8s 機器

scp ./urban-iptable-management-app.tar ubuntu@192.168.64.2:/tmp
scp ./urban-district-management-app.tar ubuntu@192.168.64.2:/tmp
scp ./urban-traffic-management-app.tar ubuntu@192.168.64.2:/tmp
scp ./urban-gateway-management-app.tar ubuntu@192.168.64.2:/tmp

安裝鏡像至 registry

multipass exec microk8s-vm -- /snap/bin/microk8s.ctr namespaces list
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images list -q

multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images import /tmp/urban-iptable-management-app.tar
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images import /tmp/urban-district-management-app.tar
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images import /tmp/urban-traffic-management-app.tar
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images import /tmp/urban-gateway-management-app.tar

multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images list -q | grep urban

刪除鏡像

multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images remove docker.io/library/urban-iptable-management-app:latest
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images remove docker.io/library/urban-district-management-app:latest
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images remove docker.io/library/urban-traffic-management-app:latest
multipass exec microk8s-vm -- /snap/bin/microk8s.ctr images remove docker.io/library/urban-gateway-management-app:latest

在部署文件中配置鏡像位置

# 替換deployment.yaml文件中的image路徑
/Users/xxx/g/github/urbanboot/urban-district-management/kubernetes/deployment.yaml

創建 Namespace

kubectl --insecure-skip-tls-verify create namespace urbanboot

部署應用

kubectl --insecure-skip-tls-verify apply -f /Users/xxx/g/github/urbanboot/urban-iptable-management/kubernetes/deployment.yaml -n urbanboot
kubectl --insecure-skip-tls-verify apply -f /Users/xxx/g/github/urbanboot/urban-district-management/kubernetes/deployment.yaml -n urbanboot
kubectl --insecure-skip-tls-verify apply -f /Users/xxx/g/github/urbanboot/urban-traffic-management/kubernetes/deployment.yaml -n urbanboot
kubectl --insecure-skip-tls-verify apply -f /Users/xxx/g/github/urbanboot/urban-gateway-management/kubernetes/deployment.yaml -n urbanboot

查看部署

kubectl --insecure-skip-tls-verify get deployments -n urbanboot
kubectl --insecure-skip-tls-verify get pods -n urbanboot

刪除部署,會自動刪除 Pods

kubectl --insecure-skip-tls-verify delete deployment urban-iptable-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete deployment urban-district-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete deployment urban-traffic-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete deployment urban-gateway-management-app -n urbanboot
  • 參考:

創建 Service

kubectl --insecure-skip-tls-verify get services -n urbanboot
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose -h

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-iptable-management-app --type=ClusterIP --port=7200 --name=urban-iptable-management-app -n urbanboot
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-iptable-management-app --type=NodePort --port=7200 --name=urban-iptable-management-nodeport -n urbanboot

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-district-management-app --type=ClusterIP --port=7200 --name=urban-district-management-app -n urbanboot
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-district-management-app --type=NodePort --port=7200 --name=urban-district-management-nodeport -n urbanboot

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-traffic-management-app --type=ClusterIP --port=7200 --name=urban-traffic-management-app -n urbanboot
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-traffic-management-app --type=NodePort --port=7200 --name=urban-traffic-management-nodeport -n urbanboot

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-gateway-management-app --type=ClusterIP --port=7200 --name=urban-gateway-management-app -n urbanboot
multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-gateway-management-app --type=NodePort --port=7200 --name=urban-gateway-management-nodeport -n urbanboot

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl expose deployment urban-traffic-management-app --type=LoadBalancer --port=7200 --name=urban-traffic-management-loadbalancer -n urbanboot
  • 參考:
  • The big downside is that each service you expose with a LoadBalancer will get its own IP address, and you have to pay for a LoadBalancer per exposed service, which can get expensive!

使用配置文件創建 Service

kubectl --insecure-skip-tls-verify expose -f /Users/xxx/g/github/urbanboot/urban-traffic-management/kubernetes/service.yaml -n urbanboot
kubectl --insecure-skip-tls-verify expose -f /Users/xxx/g/github/urbanboot/urban-traffic-management/kubernetes/nodeport.yaml -n urbanboot

刪除 Service

kubectl --insecure-skip-tls-verify delete service urban-iptable-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-iptable-management-nodeport -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-district-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-district-management-nodeport -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-traffic-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-traffic-management-nodeport -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-gateway-management-app -n urbanboot
kubectl --insecure-skip-tls-verify delete service urban-gateway-management-nodeport -n urbanboot

查一下 TCP 端口監聽

multipass exec microk8s-vm -- netstat -nl -t

查看部署事件,按照時間排序

kubectl --insecure-skip-tls-verify get events -n urbanboot --sort-by=.metadata.creationTimestamp

查看 Pod 日志

kubectl --insecure-skip-tls-verify get pods -n urbanboot
kubectl --insecure-skip-tls-verify describe pod urban-traffic-management-app-58d7578547-p277h -n urbanboot
kubectl --insecure-skip-tls-verify logs urban-traffic-management-app-58d7578547-p277h -n urbanboot
kubectl --insecure-skip-tls-verify logs urban-traffic-management-app-58d7578547-p277h -n urbanboot --tail=20

查看 Endpoint 信息

# Spring Cloud Kubernetes 會通過 API 查詢 Endpoints
kubectl --insecure-skip-tls-verify get services -n urbanboot
kubectl --insecure-skip-tls-verify get endpoints -n urbanboot
kubectl --insecure-skip-tls-verify get all --all-namespaces
kubectl --insecure-skip-tls-verify get all -n urbanboot
kubectl --insecure-skip-tls-verify describe services urban-traffic-management-nodeport -n urbanboot
kubectl --insecure-skip-tls-verify describe services urban-traffic-management-app -n urbanboot

訪問 NodePort 端口

curl -s //192.168.64.2:30211
curl -s //192.168.64.2:30211 -i
curl -s //192.168.64.2:30211 -v

登錄 Pod 環境

kubectl --insecure-skip-tls-verify exec -it urban-traffic-management-app-58d7578547-p277h -n urbanboot -- /bin/bash

查看 Java 進程

java -version
env | grep JAVA
ps -ef|grep java

版權聲明:本篇文章《在 MacOS 中使用 multipass 安裝 microk8s 環境》由作者 Dennis Gao 發表自博客園個人技術博客,未經作者本人同意禁止以任何的形式轉載,任何自動的或人為的爬蟲轉載行為均為耍流氓。

posted @ 2020-05-30 18:10  sangmado  閱讀(5460)  評論(3)    收藏  舉報