内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

如何二進(jìn)制安裝k8s集群

這篇文章主要為大家展示了“如何二進(jìn)制安裝k8s集群”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何二進(jìn)制安裝k8s集群”這篇文章吧。

創(chuàng)新互聯(lián)專注于大武口企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。大武口網(wǎng)站建設(shè)公司,為大武口等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

k8s集群安裝的方式有很多,可以基于kubeadmin工具來創(chuàng)建與安裝,也可以一個(gè)組件一個(gè)組件的安裝。如果是公有云上環(huán)境可以基于console UI或者command line的方式創(chuàng)建與安裝。上面所說,這里主要是學(xué)習(xí)的目的,所以采用二進(jìn)制手動(dòng)一個(gè)組件一個(gè)組件的安裝。不論以任何方式創(chuàng)建k8s集群都會(huì)考慮如下一些條目。

  1. 容器:容器目前基本都是docker了,當(dāng)然容器不僅僅只有docker。容器的實(shí)現(xiàn)也有很多,比方說podman(據(jù)說centos-8/redhat-8會(huì)預(yù)裝),還有pivotal公司的商業(yè)化容器等(用在其pivotal cloud foundry pass里)。當(dāng)然容器實(shí)現(xiàn)的大致原理不在這里細(xì)說,有興趣的同學(xué)可以研究一下linux namespace/cgroup/ufs,就會(huì)對容器大致原理有所了解和認(rèn)識(shí)。

  2. K8s基礎(chǔ)組件:存儲(chǔ)組件etcd,master組件api-server,controller-manager,kube-scheduler,worker組件kubelet,kube-proxy,客戶端工具kubectl。

  3. 容器之間網(wǎng)絡(luò)通訊:容器之間的網(wǎng)絡(luò)通訊總結(jié)起來基本分為兩種,underlay方式和overlay方式。underlay方式在通訊過程中沒有額外的封包,通常將容器的宿主作為路由來實(shí)現(xiàn)數(shù)據(jù)包的轉(zhuǎn)發(fā)。常見的實(shí)現(xiàn)方案有flannel host-gw方式,calico bgp方式。

    overlay方式在通訊過程中有額外的封包,例如flannel vxlan方式(在三層網(wǎng)絡(luò)里構(gòu)建二層網(wǎng)絡(luò),即在udp包里封裝eth以太包),calico ipip模式(在ip包里再次封裝ip包)。還有flannel udp方式,在upd包里封裝ip包(當(dāng)然這種方式使用tun device,每次通訊都涉及到用戶態(tài)到內(nèi)核態(tài)的切換,所以效率不高,基本是不會(huì)被用的。不過作為學(xué)習(xí)入手是可以的)。

    另外除了flannel和calico方案之外還有weave,ovs等方案,k8s自己并沒有定義網(wǎng)絡(luò)方案。畢竟網(wǎng)絡(luò)實(shí)現(xiàn)會(huì)有多種情況,不同場景的復(fù)雜度也不盡相同,也不好一下子定死。感覺k8s把網(wǎng)絡(luò)方案開放出來由不同的社區(qū)實(shí)現(xiàn)也是比較好的選擇,一來出現(xiàn)了不同的k8s網(wǎng)絡(luò)方案,不是一家獨(dú)大,有利于技術(shù)和社區(qū)發(fā)展,二來也讓使用者根據(jù)自己的實(shí)際情況有不同的選擇。

    對于這塊感興趣的同學(xué)可以多了解下linux bridge,veth-pair,route-table,arp-table,iptable,nat,fdb,tun&tap device,ipip-tunnel,vxlan,bgp protocol,l2-miss,l3-miss等基礎(chǔ)知識(shí),k8s的網(wǎng)絡(luò)方案都是在這些基礎(chǔ)知識(shí)上構(gòu)建起來的。這里就不展開細(xì)節(jié),擴(kuò)展起來也可以寫一個(gè)系列了。

  4. 鏡像image的倉庫:用來存儲(chǔ)image的repo,目前選擇有harbor(vmware開源的),nexus(這個(gè)就不用說了吧),不過harbor是專門做image repo的,nexus是支持了image repo。當(dāng)然了如果是自建的private repo還要考慮volume和house-keeping(總不能放著一直不管吧)。開源方案短期可以考慮nsf掛載volume,長期可以用ceph集群掛載volume,當(dāng)然有錢的話可以用nas。

  5. 容器的DNS:容器之間通訊當(dāng)然是用fqdn的了(容器是動(dòng)態(tài)創(chuàng)建和銷毀的,ip地址一定會(huì)變,不可能用ip。再說ip那么難記,也不方便用),既然有fqdn,那么一定就有dns服務(wù)了。從k8s各個(gè)版本來看,有過不同的dns,例如最早的sky-dns,到后來的kube-dns,到現(xiàn)在最新的coredns等。

  6. 可視化dashboard:一般用來把k8s集群中的資源以UI console的形式呈現(xiàn)出來,以及提供一些對資源的基礎(chǔ)操作,這個(gè)一般是由kube-dashboard來實(shí)現(xiàn)。

  7. 外部訪問容器提供的服務(wù):服務(wù)部署到集群里肯定是需要從集群外部來調(diào)用的(有點(diǎn)廢話,不被外部調(diào)用難道只在里面相互調(diào)用自嗨么)。一般有node port方式,ingress方式,公有云的環(huán)境里不同的廠商還提供不同的load balancer方式。當(dāng)然node port方式在service里定義一下type和port就好,load balancer方式有興趣的同學(xué)可以查看一下不同公有云廠商提供的doc。對于ingress來說,目前用的比較多的是nginx-ingress,traefik ingress,haproxy ingress。

  8. 鏡像的release發(fā)布管理:有了鏡像需要發(fā)布部署到集群里,可以用最原始的命令,不過比較費(fèi)勁。當(dāng)然目前已經(jīng)有工具h(yuǎn)elm,這樣我們就方便很多。helm也包括了client,tiller server還有charts repo(存放k8s application package)。

  9. 持久化存儲(chǔ):一般k8s里的應(yīng)用都是無狀態(tài)的,不過也避免不了存儲(chǔ)數(shù)據(jù)。k8s提供給我們persistent volume機(jī)制。當(dāng)然底層我們可以用nfs,ceph,nas等存儲(chǔ)。

  10. 監(jiān)控與預(yù)警:任何應(yīng)用肯定是需要監(jiān)控和預(yù)警的,對于k8s里方案也比較多。例如prometheus+grafana,telegraf+grafana+influxdb等等,這也是一個(gè)非常大的話題,暫時(shí)不在這里展開,擴(kuò)展起來足足可以有一個(gè)系列。

  11. 日志的收集:日志的收集總結(jié)起來也基本有兩種方式,sidecar方式和daemonset方式。sidecar方式需要在每一個(gè)pod里部署一個(gè)日志收集的agent,而daemonset方式需要在集群里部署日志收集agent的daemonset,就不需要每個(gè)pod里都有日志收集agent的container。當(dāng)然日志收集方案也比較多,filebeat/fluentd/logstash(logstash比較重,一般不太用)為agent,es為存儲(chǔ),kabina為視圖(ELK/EFK)。有錢也可以選擇splunk,當(dāng)然它可不僅僅是提供日志收集和搜索的功能。

對于本次安裝我們用的組件如下:

  • ssl證書:各個(gè)組件之間的通訊開啟ssl,我們不暴力關(guān)閉防火墻。

  • 容器:docker(18.09.6版本)

  • etcd:3.3.11版本

  • kubectl:1.15.1版本

  • kube-apiserver:1.15.1版本

  • kube-controller-manager:1.15.1版本

  • kube-scheduler:1.15.1版本

  • kubelet:1.15.1版本

  • kube-proxy:1.15.1版本

  • kubectl-debug:0.1.1本版(非k8s官方工具,主要用來方便調(diào)試pod。當(dāng)你遇到一個(gè)pod里什么工具top/nslookup/ps/netstat/tcpdump等都沒有,是沒法調(diào)試的。當(dāng)然從制作image的角度來說確實(shí)是不應(yīng)該把和應(yīng)用無關(guān)的items放到image里的,可是沒有這些工具想要調(diào)試也是臣妾做不到啊,kubectl-debug就是為了解決這個(gè)問題的)

  • pod網(wǎng)絡(luò)通訊:使用flannel(0.10.0版本)的host-gw方式(注意此方式要求所有的宿主host必須在同一個(gè)大二層網(wǎng)絡(luò)里,換句話說也就是所有host不能跨ip網(wǎng)段)。

  • 鏡像image的倉庫:使用harbor(1.8.1版本),存儲(chǔ)用nfs掛載。當(dāng)然harbor依賴docker-compose,所以也會(huì)用到docker-compose(1.24.1版本)

  • 容器dns:使用coredns,部署在集群里,原始image為

    k8s.gcr.io/coredns:1.3.1

  • dashboard:使用kube-dashboard,部署在集群里,原始image為k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

  • ingress外部訪問容器:使用nginx-ingress,部署在集群里,原始鏡像quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1

  • 示例:部署nginx應(yīng)用作為example application

  • image release發(fā)布工具:

    a):helm client(2.14.3版本)

    b):tiller server(2.14.3版本,部署在集群里)

    c):chartmuseum(0.9.0版本,作為private charts repo)

    d):helmpush(0.7.1版本,用于把k8s應(yīng)用package推送到priavte charts repo chartmuseum里)

環(huán)境介紹

  1. OS:oracle virtual box, centos-7

  2. Master:1臺(tái)vm,172.20.11.41

    (當(dāng)然這里沒有做master的HA,有興趣的同學(xué)可以看一下nginx/haproxy + keepalived)

  3. Worker:2臺(tái)vm

    172.20.11.42/172.20.11.43

  4. Master 安裝:

  • docker

  • etcd

  • flannel

  • kubectl

  • kube-apiserver

  • kube-scheduler

  • kube-controller-manager

  • kubectl-debug

  • docker-componse

  • harbor

  • nfs client

  • helm

  • chartmuseum

  • helmpush

    5. Worker 安裝:

  • docker

  • etcd

  • flannel

  • kubelet

  • kube-proxy

  • nfs-server(安裝在172.20.11.43) 

    6. 集群中的基礎(chǔ)服務(wù)安裝:

  • coredns

  • kube-dashboard

  • nginx-ingress

  • tiller-server

以上是“如何二進(jìn)制安裝k8s集群”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文名稱:如何二進(jìn)制安裝k8s集群
文章網(wǎng)址:http://www.rwnh.cn/article22/jsddcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、做網(wǎng)站、用戶體驗(yàn)、品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
斗六市| 文化| 临西县| 彭泽县| 高尔夫| 宁晋县| 南汇区| 阿克苏市| 当阳市| 剑川县| 柳林县| 油尖旺区| 定安县| 上饶县| 略阳县| 屏边| 北京市| 小金县| 长子县| 大新县| 湘潭市| 宁波市| 蚌埠市| 翁源县| 阜平县| 元谋县| 衡水市| 额敏县| 伊宁县| 房山区| 东台市| 科尔| 六安市| 华宁县| 平阳县| 濮阳市| 南丹县| 宿松县| 新乡县| 吴旗县| 天祝|