主頁 > 軟體設計 > 202011-202012面試總結

202011-202012面試總結

2020-12-10 18:44:45 軟體設計

1.總結一下你比較突出的專案
根據自身情況而定
2.tcp 三次握手四次斷開 并且每次發送資料包是什么 以及tcp是什么狀態
參考
tcp三次握手

在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接,如圖1所示,

 (1) 第一次握手:建立連接時,客戶端A發送SYN包(SYN=j)到服務器B,并進入SYN_SEND狀態,等待服務器B確認,

 (2) 第二次握手:服務器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也發送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態,

 (3) 第三次握手:客戶端A收到服務器B的SYN+ACK包,向服務器B發送確認包ACK(ACK=k+1),此包發送完畢,客戶端A和服務器B進入ESTABLISHED狀態,完成三次握手,

完成三次握手,客戶端與服務器開始傳送資料,

在這里插入圖片描述

tcp四次斷開
在這里插入圖片描述

3.pod的創建程序

用戶通過 REST API 創建一個 Pod
apiserver 將其寫入 etcd
scheduluer 檢測到未系結 Node 的 Pod,開始調度并更新 Pod 的 Node 系結
kubelet 檢測到有新的 Pod 調度過來,通過 container runtime 運行該 Pod
kubelet 通過 container runtime 取到 Pod 狀態,并更新到 apiserver 中

在這里插入圖片描述

1.k8s高可用架構 是怎樣的 包括api 以及調度器控制器怎么作業
這里master 有api-server 以及scheduler 和controller ,一般我們做的高可用只是針對api會做負載輪詢調度 也就是說在api的上層通過lb來做代理,scheduler以及controller都是一個作業其余沉睡 ,如果作業的掛掉了 ,那么沉睡的會被喚醒 也只會喚醒一個,這里具體是etcd中會有一把鎖 scheduler和controller會watch這把鎖 watch到的就會開始作業 ,沒有watch到的就會持續watch,
2.deployment 會有rs 那么 rs里面會有pod pod 最后名稱的哈希值是怎么計算的 為什么擴縮容的時候原有的pod 最后的后綴哈希值不會變 但是我滾動更新的時候就會發生變化
這個沒回答上來
3.deployment跟sts有什么本質的區別
deployment無序 sts是有序的 并且pv pvc也會略有不同 deployment pod公用一個 sts每個pod一個
4.怎么樣控制不同部門的管理(這里結合config 跟rbac)
通過rbac給用戶授權 不同的用戶對應不同的權限 clusterrolebinding clusterrole 以及role rolebinding
5.那么說一下controller的 原始碼架構 是怎樣的
在這里插入圖片描述
手繪圖 以及描述作業流程
https://blog.csdn.net/weixin_45413603/article/details/107217076
6.informer 承擔了一個什么樣的角色

7yaml 中會影響調度器的調度 的欄位有哪些

親和度  
nodename
nodeselector
污點容忍度
request

8.request跟limit 有什么本質的區別
request會影響調度
limit會影響pod被kill掉
9.存活檢查跟就緒檢查有什么區別
存活失敗會導致pod重啟
就緒失敗在svc的ep上不會有pod ip也就是說不會給pod引入流量
10.前面你說到了request 會影響到調度器 也就是說預分配 需要滿足才可以調度那么 他怎么去判斷節點是否滿足條件
你在describe可以看到node的一些基礎資訊,他是通過這個來判斷 用

總記憶體- system預留-kube預留-pod已經使用 = 可用

以及limit會不會作為判斷的一個標準
limit不會影響調度
11.hpa 自定義以及k8s自帶的 也就是v1 v2版本
hpa基于記憶體cpu 那么如何能自定義指標
自定義需要用到prome的指標結合adapter
12.informer里面有什么
informer的架構 這里可以看一下
https://blog.csdn.net/weixin_45413603/article/details/107995986
13 如果寫了nodename 那么調度程序會不會走調度器
不會

1.prometheus 的架構
alertmanager 報警
webhook對接語音釘釘或者企業微信
grafana圖表展示
prometheus 資料處理
exporter 資料收集agent
2.你基于prometheus 怎么去做的 專案方面怎么做的監控
redis cluster
es cluster
基礎服務器以及k8s服務器

3.prometheus 你開發過什么
webhook and exporter
4.nginx 的log 只要404 狀態碼 的用戶請求uri 然后我只要前10
這里主要是結合cat grep awk sort uniq -c
5. elk的常見架構 以及es的集群聯邦
在這里插入圖片描述
在這里插入圖片描述

6.prometheus 的集群
prometheus集群主要是圍繞多個prometheus共享一個tsdb 來做,但是資料量特別大之后特別消耗記憶體,這也只是解決了高可用問題
7.2xx 3xx 4xx 5xx 首先你怎么理解 狀態碼 200 正確 3xx重定向 4xx請求類 5xx 服務端錯誤
8.prometheus 遇到過瓶頸么怎么處理的
目前沒有 但是量大了記憶體消耗會很高
9.prometheus 你的資料量大概有多少
目前中間件部分 一個月30g k8s集群具體沒細看
10.接著前面的elk常見架構 的話
我回答說可以借助redis 或者kafka 以及zk 那么這兩個架構的區別在哪里
redis是一個記憶體行 如果突增或者資料量大了 可能記憶體打滿掛機 導致資料丟失
zk kafka是佇列
11.容器cni flannel calico 做namespace隔離 那么核心是canel 他的核心處理是怎么做的隔離 能做什么隔離
這塊沒有怎么回答 就是可以做ns的隔離以及黑白名單
12.pod一直處于CrashLoopBackOff需要進去除錯
這個可以使用ephemeralcontainers臨時容器
https://kubernetes.io/zh/docs/concepts/workloads/pods/ephemeral-containers/
或者在高版本k8s使用k8s-debug

1.prometheus 可以通過信號reload 組態檔也可以通過介面reload組態檔 但是當資料量特別大的時候 reload如果需要10分鐘以上 資料會出現斷層 那么這個有沒有什么好的處理方式,以及prometheus 啟動程序中 攜程處理 這塊涉及到了 prometheus的啟動流程的攜程組 加載方式
2.如果容器沒有bash 或者sh 也就是說沒有解釋器 那么我怎么進入容器

function e() {
    set -u
    ns=${2-"default"}
    container_id=`kubectl -n $ns describe pod $1 | grep -Eo 'docker://.*$' | head -n 1 | awk -F '//' '{print $2}'`
    if [ "$container_id" != "" ]
    then
        echo "container_id:$container_id"

        pid=`docker inspect -f {{.State.Pid}} $container_id`
        echo "pid:$pid"

        echo "enter pod netns successfully for $ns/$1"
        nsenter -n --target $pid
    fi
}

3.在容器啟動失敗以后無限重啟 怎么進入容器排查問題
沒回答上來
4.然后就是基于k8s的污點以及親和度問了一些問題
親和度用的特別多以后有什么影響
對于調度器消耗會特別大
5.k8s使用grpc協議有沒有什么弊端
沒回答上來我對grpc不是很了解 我就知道他是http鏈接復用


1.linux oom
2.proc跟內核的區別
3.cpu使用率 cpu負載理解
4.tcp timeout
5.tcp狀態有哪些
6.503 502的區別

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/232680.html

標籤:其他

上一篇:應對萬億資料上億并發!位元組跳動的圖資料庫研發實踐

下一篇:MQ(訊息佇列)系列學習---MQ如何保證訊息佇列高可用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more