国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初試k8s,通過rancher自頂向下的學習kubernetes

jemygraw / 968人閱讀

摘要:下面我想介紹另一種學習思路,自頂向下的學習。是通過虛擬機創建集群,支持多種虛擬機,我這里用的。對內或對外暴露服務。和的控制器,通過配置的規則來管理。三個主要的命令行程序用了啟動集群。需要在所以節點上運行,處理集群內部通訊,類似。

之前就玩過docker,但是一直不知道怎么把容器運用到生產上。構建一個docker鏡像,把他run起來很簡單;難的是容器的部署(CICD),容器的網絡,數據持久化等。如果我們像之前一樣,打包好鏡像,通過ssh連接到目標服務器run起來,這和打包成二進制傳上去似乎也沒多大進步。

k8s就是幫我們解決這些難點的工具。k8s是master-node架構,通過master管理node。首先需要將你的機器組成k8s集群,集群機器的內網應該是連通的,這樣你的集群就捆綁成了一個整體由k8s接管了。你只需要準備好配置文件,用k8s的api或cli(命令行)發布鏡像即可,k8s會根據你配置的規則來管理容器,應用場景有:一份鏡像需要部署多少個容器(replicaSets),服務的升級策略(滾動更新),服務的容災策略(某個node掛了可以在其他node補上缺失的容器),彈性伸縮(監控CPU等指標達到臨界值后自動增加容器)等。

怎么樣?是不是覺得很cool,你可能迫不及待的想去把k8s用起來了,可是你打開k8s官方文檔大段大段的英文和各種生疏的概念就把你整懵了。你跟著教程敲了一遍,一大堆yaml配置,全是命令行操作,可能你已經被墻給干倒了(天朝ha);還有一堆概念,什么Pod, Deployment, ReplicaSet, Service都是些啥玩意。可能你花了大半天耐心的把文檔過了一遍,覺得這個東西根本落不了地啊,這一大堆配置和命令行,這誰頂得住,k8s這么先進不應該是可視化的點點就完事了嗎?我一開始天真的以為k8s dashboard能幫幫我,費了點力氣把它裝好后,發現只有一些監控數據。

下面我想介紹另一種學習思路,自頂向下的學習。其實你一開始不用了解k8s的各種概念,只需要看看別人是怎么用k8s的就行了(都9102年了,那些很潮的公司都已經玩了很久了)。不是說學東西必須得打好基礎嗎?自頂向下是個什么鬼?拿學開車舉例,你開始只是在路上看到別人開車,很拉風可撩妹,比兩輪的安全,不怕風吹雨打的,教練我也要開車;你去報了駕校(看到這里你肯覺得我要忽悠你報培訓班),你摸到了車看到別人是咋開的,了解了基本知識你就可以在訓練場地慢慢蠕動了(測試環境),你甚至不用了解交規,更不用了解汽車的原理,這些后面可以慢慢補。補好基礎了你就可以上路,然后你可能需要了解汽車原理,改裝它優化它,再練一練排水渠過彎的技巧,成為一代老司機。

回到正題,我們學k8s同樣可以先看看別人是咋用的,再去了解其中細節,掌握它。咋看呢?一大部分公司還沒跟上潮流,這時我們可以借助開源和云服務。
首先我們的思路沒有問題,要便捷的使用k8s我們需要一個可視化管理平臺。
開源的有rancher、Qihoo360/wayne等,云服務阿里云、騰訊云、AWS都提供容器服務管理后臺。

這里就拿rancher開始吧,畢竟開源免費。值得一提的是,阿里云等的容器服務按量積分,master可托管,弄一兩天低配node,一天也就幾塊。

在本地啟動rancher容器:

sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher rancher/rancher

打開https://127.0.0.1:8443平臺,可以看到cluster, node, namespace, member等功能。

下面我們需要準備一個k8s cluster(集群),用minikube可以方便的部署一個本地集群。minikube是通過虛擬機創建集群,支持多種虛擬機,我這里用的virtualBox。啟動很簡單,一個命令minikube start,困難的是墻,下面貼一下配置代理的腳本:

function ministart() {
    export HTTP_PROXY=http://192.168.99.1:1089
    export HTTPS_PROXY=http://192.168.99.1:1089
    export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24

    minikube start 
    --docker-env=HTTP_PROXY=$HTTP_PROXY 
    --docker-env=HTTPS_PROXY=$HTTPS_PROXY 
    --docker-env=NO_PROXY=$NO_PROXY 
    --registry-mirror=https://registry.docker-cn.com
}

注意一下這個ip,不能使用127.0.0.1,因為虛擬機需要使用宿主的代理,虛擬機跟宿主機通訊是使用虛擬網卡創建的網段,默認宿主的ip為192.168.99.1,虛擬機是192.168.99.100。你還得把你的梯子監聽的地址改改,127.0.0.1->0.0.0.0,監聽所有網卡。同樣rancher里的ip也應使用192.168.99.1,這個ip必需是所有集群都能訪問到的,如果你是用docker自帶的k8s集群,你可以用ifconfig找一個無線網或有線網的ip,反正不能使用127.0.0.1。

minikube下載一些必需鏡像后,k8s集群就在虛擬機里啟動了,可以使用minikube ssh登錄到虛擬機里探查一番。下面我們在rancher里引入集群:

集群引入了之后我們來部署我們第一個app,一個echo-server:

等了一會兒k8s把容器部署好了,上面配置了暴露隨機端口值是32192,我們訪問192.168.99.100:32192就能看的echo-sever返回的信息了。我們覺得一個pod不夠,點擊+號,k8s會幫我們做水平擴容啟動第二個pod,雖然minikube是但節點的,但是依靠容器的隔離特性,單節點照樣能部署多個相同應用。

體驗一下rancher的pipeline,集成了CICD功能。配置好代碼倉庫后run起來,會創建Jenkins等容器。等了好一會兒后,可以看到workloads里example-server部署好了。

文檔里有介紹pipeline的原理: https://rancher.com/docs/ranc...。rancher會自動創建三個組件:

Jenkins 用了執行pipeline

Docker Registry 一個內部Docker Registry,用來存放pipeline build的鏡像,鏡像在pipeline生命周期后不會保留。如果需要在外部使用image,請配置外部倉庫。

Minio 對象存儲,用了存放日志文件

Docker Registry和Minio的數據持久化可以為其配置volume。

ok,下面自行探索一下rancher的各個頁面,有Workloads,Load blance,Service discory,pipeline這些部署常用的,還提供報警、日志、監控、用戶權限等功能,這就是一個完善的k8s管理平臺了,到此你應該了解k8s大概有哪些用處了。

下面你需要再把k8s官方文檔撿起來看一看,或者是一本系統介紹k8s的書籍,把你在rancher上用到的功能和k8s的概念對應起來,現在你才能抓住哪些是重點。

一些概念:
pod:k8s最小調度單位,可以是一個或多個容器。

service:對內或對外暴露k8s服務。

deployment:pods和replicaSets的控制器,通過deployment配置的規則來管理pods。

三個主要的命令行程序:
kubeadm:用了啟動k8s集群。

kubelet:需要在所以節點上運行,處理集群內部通訊,類似agent。

kubectl:客戶端工具,用戶用它來給k8s集群發指令,類似ssh,可配置好秘鑰遠程訪問,默認配置是 ~/.kube/config。

一些常用的命令:

kubectl get all -A
kubectl get namespaces
kubectl get svc
kubectl get pods
kubectl get deployments hello-world

# 暴露服務
kubectl expose deployment hello-world --type=NodePort --name=example-service


# logs
kubectl -n cattle-system logs -l app=cattle-cluster-agent

# exec
# -c --container
kubectl exec -it pod-name -c container-name -- /bin/bash

更多細節日后再慢慢探索,下面總結一下:

k8s專注于容器部署這一塊,它不提供鏡像打包(CICD),鏡像儲存(registry),也沒有管理平臺,更沒有service mesh(服務通訊管控)。如果你要落地和完善,還有很多東西需要你去搞。那個rancher平臺看起來很美好,但是實際用起來問題挺多,更適合在其上二次開發。其實最靠譜的落地方案還是使用云服務,用錢來解決問題,先小規模用起來,摸熟了再研究其他姿勢。

本文想表達的一個思想是:學習一個東西,你應該先搞清楚why(為什么用?有哪些應用場景?別人咋用的?),然后再研究how(怎么用),這樣才能抓住重點,學起來事半功倍。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32985.html

相關文章

  • 初試k8s通過rancher自頂向下學習kubernetes

    摘要:下面我想介紹另一種學習思路,自頂向下的學習。是通過虛擬機創建集群,支持多種虛擬機,我這里用的。對內或對外暴露服務。和的控制器,通過配置的規則來管理。三個主要的命令行程序用了啟動集群。需要在所以節點上運行,處理集群內部通訊,類似。 之前就玩過docker,但是一直不知道怎么把容器運用到生產上。構建一個docker鏡像,把他run起來很簡單;難的是容器的部署(CICD),容器的網絡,數據持...

    marser 評論0 收藏0
  • 初試k8s通過rancher自頂向下學習kubernetes

    摘要:下面我想介紹另一種學習思路,自頂向下的學習。是通過虛擬機創建集群,支持多種虛擬機,我這里用的。對內或對外暴露服務。和的控制器,通過配置的規則來管理。三個主要的命令行程序用了啟動集群。需要在所以節點上運行,處理集群內部通訊,類似。 之前就玩過docker,但是一直不知道怎么把容器運用到生產上。構建一個docker鏡像,把他run起來很簡單;難的是容器的部署(CICD),容器的網絡,數據持...

    tinyq 評論0 收藏0
  • CNCF啟動K8s軟件一致性項目,Rancher入選全球首批K8s認證平臺

    摘要:于美國舊金山當地時間年月日宣布推出,并公布了首批通過認證的個平臺的名單。此次認證項目中得到認證的產品與平臺確保具有一致性及可移植性,可確保完整的按照規定運行,因此用戶可以獲得無縫且穩定的體驗。成為了首批獲得認證的平臺之一。 CNCF于美國舊金山當地時間2017年11月13日宣布推出Certified Kubernetes Conformance Program,并公布了首批通過認證的3...

    陳偉 評論0 收藏0
  • CNCF啟動K8s軟件一致性項目,Rancher入選全球首批K8s認證平臺

    摘要:于美國舊金山當地時間年月日宣布推出,并公布了首批通過認證的個平臺的名單。此次認證項目中得到認證的產品與平臺確保具有一致性及可移植性,可確保完整的按照規定運行,因此用戶可以獲得無縫且穩定的體驗。成為了首批獲得認證的平臺之一。 CNCF于美國舊金山當地時間2017年11月13日宣布推出Certified Kubernetes Conformance Program,并公布了首批通過認證的3...

    spacewander 評論0 收藏0
  • 春節不打烊!Rancher 2.0 里程碑版本發布:支持添加自定義節點!

    摘要:里程碑更新支持添加自定義節點此次更新之前的版本只支持和,而如今的最新版本,用戶可以在創建集群時添加了自定義節點了。連接成功后,將按照用戶指定的角色所指示的方式為該節點安裝相應的組件。 Rancher是一個開源的全棧化企業級容器管理平臺,用戶在Rancher可視化界面上以點選的方式,即可一鍵完成所有容器基礎設施(網絡、存儲、負載均衡等)的對接與部署,確保容器在任何基礎架構上(公私有云、虛...

    zilu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<