Minikube-Kubernetes本地環境進行開發

来源:https://www.cnblogs.com/xcmelody/archive/2019/05/16/10873020.html
-Advertisement-
Play Games

Minikube Kubernetes本地環境進行開發 使用Minikube 啟動Minikube 獲取命名空間 獲取集群信息 獲取節點信息 運行nginx 獲取pods 查看Pod日誌 進入Pod中 獲取deployment 獲取svc(services) 使用Minikube獲取服務訪問地址 刪 ...


Minikube-Kubernetes本地環境進行開發

使用Minikube

啟動Minikube

# 啟動
minkube start

# 檢查狀態
minikube status

host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100


# 訪問面板
$ minikube dashboard

# 訪問web前端
$ kubectl proxy

獲取命名空間

# kubectl get namespaces
$ kubectl get ns
NAME              STATUS   AGE
default           Active   156m
kube-node-lease   Active   156m
kube-public       Active   156m
kube-system       Active   156m

獲取集群信息

$ kubectl cluster-info
Kubernetes master is running at https://192.168.99.100:8443
KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-
dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

獲取節點信息

$ kubectl get node

NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   162m   v1.14.1

運行nginx

# 運行nginx
$ kubectl run nginx --image=nginx:1.16 --port=80 --labels="app=nginx,env=dev"

# 增加新標簽
# kubectl label pod $POD_NAME app2=test

# 發佈服務採用對外暴露節點
$ kubectl expose deployment nginx --type=NodePort

獲取pods


$ kubectl get pods
# 根據標簽查詢
# kubectl get pods -l app=nginx

NAME                    READY   STATUS    RESTARTS   AGE
nginx-fcb945956-t8bqq   1/1     Running   0          67s

# 獲取pod詳細信息
# kubectl describe pods -l app=nginx

查看Pod日誌

kubectl logs $POD_NAME

進入Pod中

# 查看環境
# kubectl exec $POD_NAME env

$ kubectl exec -ti nginx-fcb945956-t8bqq /bin/bash

獲取deployment

$ kubectl get deployment

NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           18m


# 獲取描述
$ kubectl describe deployment

Name:                   nginx
Namespace:              default
CreationTimestamp:      Wed, 15 May 2019 23:29:23 +0800
Labels:                 app=nginx
                        env=dev
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx,env=dev
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
           env=dev
  Containers:
   nginx:
    Image:        nginx:1.16
    Port:         8081/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-fcb945956 (1/1 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  18m   deployment-controller  Scaled up replica set nginx-fcb945956 to 1

獲取svc(services)

# kubectl get svc
$ kubectl get services

NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        3h8m
nginx        NodePort    10.105.192.17   <none>        80:31199/TCP   5m9s

# 獲取詳情
$ kubectl describe services

Name:              kubernetes
Namespace:         default
Labels:            component=apiserver
                   provider=kubernetes
Annotations:       <none>
Selector:          <none>
Type:              ClusterIP
IP:                10.96.0.1
Port:              https  443/TCP
TargetPort:        8443/TCP
Endpoints:         192.168.99.100:8443
Session Affinity:  None
Events:            <none>


Name:                     nginx
Namespace:                default
Labels:                   app=nginx
                          env=dev
Annotations:              <none>
Selector:                 app=nginx,env=dev
Type:                     NodePort
IP:                       10.105.192.17
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  31199/TCP
Endpoints:                172.17.0.5:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

使用Minikube獲取服務訪問地址

# 獲取服務url
$ minikube service nginx --url

# 訪問測試
$ curl $(minikube service nginx --url)

刪除服務

# kubectl delete deployments --all
$ kubectl delete deployments -l app=nginx

# kubectl delete pods --all
$ kubectl delete pods -l app=nginx

# 刪除service
kubectl delete service -l app=nginx

停止Minikube

minikube stop

參考

K8S官網文檔

Minikube - Kubernetes本地實驗環境

Minikube:使用 Kubernetes 進行本地開發

Kubernetes基礎:查看狀態、管理服務


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文/雲之幻 前不久,博客作者 Bravo Yeung 寫了一篇還算略受歡迎的關於 RSS 的文章 ".Net開發者必知的技術類RSS訂閱指南" 。 RSS 現在用的人很少了,而且就算是我,也不過是在一周前才開始正視 RSS 。只因為接觸到了一個很好很強大的社區 RSS Hub ,當時看到之後就立刻做 ...
  • Echarts基本顯示: var c1 = echarts.init(document.getElementById('pic_01')); var op1= { title : { text: '某地區蒸發量和降水量', subtext: '純屬虛構' }, tooltip : { trigger ...
  • ASP.NET Core MVC 包含對通過固定格式或根據客戶端規範來設置響應數據格式的內置支持。 ASP.NET Web API的內容協商(Content Negotiation)機制的理想情況是這樣的:客戶端在請求頭的Accept欄位中指定什麼樣的MIME類型,Web API服務端就... ...
  • 1.前言 Core與早期版本的 ASP.NET 對比,配置應用程式的方式的 Global.asax、FilterConfig.cs和RouteConfig.cs 都被Program.cs 和 Startup.cs取代了。Program.cs作為Web應用程式的預設入口,在沒有任何修改的情況下,會調用 ...
  • 一直想給我做的服務寫UI。但苦於現在ABPVNext框架對SPA支持不好。只好先放棄VUE。先弄個UI在說。ABPVNext中的框架都是用Helper封裝好的Label。不知道怎麼使用,於是翻源代碼。找到了Demo。 Components Alerts Badges Borders Breadcru ...
  • 剛剛有網友在QQ問及,根據訂單首碼,去查找與首碼匹配的訂單號。 Insus.NET在控制台應用程式中,使用普通的方法來實現,參考下麵代碼示例: using System; using System.Collections.Generic; using System.IO; using System. ...
  • 小白開學Asp.Net Core《二》 ——數據倉儲層(Repositroy) 一、歷史現象 在後端開發中,資料庫操作是最頻繁的,每一個開發人員都會接觸,甚至不少開發人員每天的工作就是與資料庫打交道。所以可見資料庫操作是多長重要。 在現在的開發過程中,大多數開發人員只是以編寫SQL語句的方式操作數據 ...
  • 實現原理:使用擴展方法。 使用方法:在窗體的load事件或構造方法中: 擴展方法是.net提供的一個語法糖,使用它可以很方便的封裝一些通用功能。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...