日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
K8s常見面試題,讓你求職不迷路

K8S 常見面試題,讓你求職不迷路

作者:crossoverJie 2023-08-18 08:13:11

云計算

云原生 你可以將容器運行在不同的機器或節(jié)點中,并且可以將一些變化同步給這些容器,簡單來說我們只需要編寫 yaml 文件,告訴 k8s 我的預(yù)期是什么,其中同步變化的過程全部都交給 k8s 去完成。

創(chuàng)新互聯(lián)公司執(zhí)著的堅持網(wǎng)站建設(shè),小程序開發(fā);我們不會轉(zhuǎn)行,已經(jīng)持續(xù)穩(wěn)定運營十年。專業(yè)的技術(shù),豐富的成功經(jīng)驗和創(chuàng)作思維,提供一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造品牌,攜手廣大客戶,共同發(fā)展進步。

前段時間在這個視頻中分享了 https://github.com/bregman-arie/devops-exercises 這個知識倉庫。

這次繼續(xù)分享里面的內(nèi)容,本次主要以 k8s 相關(guān)的問題為主。

k8s 是什么,為什么企業(yè)選擇使用它

k8s 是一個開源應(yīng)用,給用戶提供了管理、部署、擴展容器的能力,以下幾個例子更容易理解:

  • 你可以將容器運行在不同的機器或節(jié)點中,并且可以將一些變化同步給這些容器,簡單來說我們只需要編寫 yaml 文件,告訴 k8s 我的預(yù)期是什么,其中同步變化的過程全部都交給 k8s 去完成。

其實就是我們常說的聲明式 API

  • 第二個特點剛才已經(jīng)提到了,它可以幫我們一鍵管理多個容器,同步所有的變更。
  • 可以根據(jù)當(dāng)前的負載調(diào)整應(yīng)用的副本數(shù),負載高就新創(chuàng)建幾個應(yīng)用實例,低就降低幾個,這個可以手動或自動完成。

什么時候使用或者不使用 k8s

  • 如果主要還是使用物理機這種低級別的基礎(chǔ)設(shè)施的話,不太建議使用 k8s,這種情況通常是比較傳統(tǒng)的業(yè)務(wù),沒有必要使用 k8s。
  • 第二種情況是如果是小團隊,或者容器規(guī)模較小時也不建議使用,除非你想使用 k8s 的滾動發(fā)布和自擴容能力,

不過這些功能運維自己寫工具也能實現(xiàn)。

k8s 有哪些特性

  • 是自我修復(fù),k8s 對容器有著健康檢測,比如使用啟動探針、存活探針等,或者是容器 OOM 后也會重啟應(yīng)用嘗試修復(fù)。
  • 自帶負載均衡,使用 service 可以將流量自動負載到后續(xù) Pod 中,如果 Pod 提供的是 http 服務(wù)這個夠用了,但如果是 grpc 這樣的長鏈接,就需要使用 istio 這類服務(wù)網(wǎng)格,他可以識別出協(xié)議類型,從而做到請求級別的負載均衡。
  • Operator 自動運維能力:k8s 可以根據(jù)應(yīng)用的運行情況自動調(diào)整當(dāng)前集群的 Pod 數(shù)量、存儲等,拿 Pulsar 舉例,當(dāng)流量激增后自動新增 broker,磁盤不足時自動擴容等。
  • 滾動更新能力:當(dāng)我們發(fā)版或者是回滾版本的時候,k8s 會等待新的容器啟動之后才會將流量切回來,同時逐步停止老的實例。
  • 水平擴展能力:可以靈活的新增或者是減少副本的數(shù)量,當(dāng)然也可以自動控制。
  • 數(shù)據(jù)加密:使用 secret 可以保存一些敏感的配置或者文件。

k8s 有著哪些對象

這個就是考察我們對 k8s 是否是熟悉了,常用的有:

  • Pod
  • Service
  • ReplicationController
  • DaemonSet
  • namespace
  • ConfigMap 這個其實知道沒有太多作用,主要還是得知道在不同場景如何使用不同的組件。

哪些字段是必須的

這個問題我也覺得意義不大,只要寫過 yaml 就會知道了,metadata, kind, apiVersion。

apiVersion: apps/v1  
kind: Deployment  
metadata:  
  labels:  
    app: app
  name: app

kubectl 是什么

其實就是一個 k8s 的 命令行客戶端。

當(dāng)你部署應(yīng)用的時候哪些對象用的比較多

  • 第一個肯定是 deployment,這應(yīng)該是最常見的部署方式。
  • service: 可以將流量負載到 Pod 中。
  • Ingress: 如果需要從集群外訪問 Pod 就得需要 Ingress 然后 配合域名訪問。

為什么沒有 k get containers 這個命令

這個問題主要是看對 Pod 的理解,因為在 k8s 中 Pod 就是最小的單位了,如果想要訪問容器可以在 Pod 中訪問。

我們可以加上 -c 參數(shù)進入具體的容器。

kubectl exec -it app -c istio-proxy

你認(rèn)為使用使用 k8s 的最佳實踐是什么

這個主要是看日常使用時有沒有遇到什么坑了:

  • 第一個就是要驗證 yaml 內(nèi)容是否正確,這個確實很重要,一旦執(zhí)行錯了后果很嚴(yán)重,比如使用 helm 的時候最好豈容 dry-run 和 debug,先看看生成的 yaml 是否是預(yù)期想要的。

helm upgrade app --dry-run --debug

  • 第二個限制資源的使用,比如 CPU 和 內(nèi)存,這個也很重要,如果不設(shè)置一旦應(yīng)用出現(xiàn) bug 可能導(dǎo)致整個 k8s 集群都受到影響。
  • 為 Pod,deployment 指定標(biāo)簽,用于分組。
# 資源限制
resources:  
  limits:  
    cpu: 200m  
    memory: 200Mi  
  requests:  
    cpu: 100m  
    memory: 100Mi

參考來源:https://github.com/bregman-arie/devops-exercises/blob/master/topics/kubernetes/README.md#kubernetes-101。


網(wǎng)頁名稱:K8s常見面試題,讓你求職不迷路
轉(zhuǎn)載來源:http://www.5511xx.com/article/djcicsc.html