k8s快速通關秘籍(1)

2020-09-05 GT七妖妖

隨著IT技術發展的日新月異,應用程式的工作負載也經歷了4代,從第1代大型機,小型機,到第2代X86伺服器,再到第3代虛擬機,當前又再向第4代容器轉移。

K8s的快速崛起大大加快了應用程式的工作負載從第3代虛擬機向第4代容器的遷移速度,K8s不僅提供容器編排,部署和管理功能,而且也是CNCF基金會第一個畢業的項目,代表其成熟和穩定性已達到生產環境的標準,當前推薦部署在生產環境的k8s版本是1.14.6。

k8s越來越流行,已經成為容器管理與調度編排的首選平臺和事實標準,開發,測試,運維等技術人員,需要快速的學習和掌握k8s相關知識,通關秘籍系列就從k8s架構和組件,k8s的安裝部署,k8s的日常運維等方面介紹k8s,使零基礎的小白技術人員,迅速拿到k8s的通關秘籍。

k8s架構和組件

首先k8s分為Master節點和Node節點

Master節點相當於k8s的大腦,它的主要職能就是負責調度,決定應用在那個Node節點運行。

Node節點是k8s的工作節點,提供計算資源,承擔運行應用的容器。

Master節點主要包含以下組件:

kube-apiserver:是k8s重要的核心組件之一,封裝了 k8s 所有的邏輯,通過REST API 格式供客戶端使用,kubectl 就是最常用到的客戶端程序。

kube-apiserver提供集群管理的認證、授權、準入控制以及集群狀態變更等

kube-controller-manager:負責整個k8s任務的管理工作,保證集群中各種任務的狀態處於期望狀態。

提交到k8s中的任務分位兩大類:Pod和Controller。

Pod是k8s中能夠創建和部署的最小單位,是比容器更高一層的概念,增加了這一層是為了增加靈活性,Pod可以是一個容器或者多個容器。如果是多個容器,這些容器是不可分離,它們不僅要運行在相同的Node上,並且擁有相同的IP位址。

Controller是比Pod更高一層的概念。Controller是由一組Pod組成的,這一組Pod是可以分布在不同的Node節點上。Pod雖然支持多個容器,無法支持跨Node節點分布容器。Controller支持跨Node節點分布容器。

k8s常用的,原生支持的Controller主要有以下幾種:

Deployment,用於管理無狀態應用,是一個更高層次的概念,用來管理ReplicaSet,並提供對pod更新。在升級應用程式時,Deployment會新創建一個ReplicaSet,並控制新舊兩個 ReplicaSet,新ReplicaSet管理Pod會逐漸達到預期的數量,舊ReplicaSet管理的Pod會減少到0,而業務不會中斷,Deployment 將這些運維過程都代碼化,內置為自己的業務邏輯,從而讓升級部署過程變得簡單。

StatefulSet,用於管理有狀態應用, 在Pods管理的基礎上,保證Pods的順序和一致性。StatefulSet創建的Pods在生命周期中會保持持久的標記(例如Pod Name)。

DaemonSet,用來保證在每個Node節點上都運行一個容器副本,常用來部署一些集群的日誌、監控或者其他系統管理應用。

kube-schedule: 負責將pod 調度到最優的Node節點上,會跟蹤集群中所有 Node 節點的資源利用情況,並採取合適的調度策略,確保調度的均衡性,避免集群中的某些節點過載。

etcd:k8s集群中一個十分重要的組件,用於保存集群所有的網絡配置和對象狀態等關鍵數據。在k8s中,數據是隨時發生變化的,比如說增加了新的Pod、增加了新的Node、Node宕機了、容器死掉了等等,都會觸發狀態數據的變更。狀態數據變更之後,都需要及時地通知給k8s每一個組件。etcd有一個特別好用的特性,可以調用它的api監聽其中的數據,一旦數據發生變化了,就會收到通知。有了這個特性之後,k8s中的每個組件只需要監聽etcd中數據,就可以知道自己應該做什麼。

Node節點主要包含以下組件:

kubelet:在k8s集群中,每個Node節點都會啟動kubelet進程,用來處理Master節點下發到本Node節點的任務,管理Pod和其中的容器。kubelet會在API Server上註冊節點信息,定期向Master匯報節點資源使用情況,並通過cAdvisor監控容器和節點資源。可以把kubelet理解成Node節點上的pod管家。

kube-proxy:在k8s集群中,每個Node節點都會運行一個kube-proxy服務進程,這個進程可以看做service的透明代理和負載均衡器。其核心功能是將某個service的訪問請求轉發到後端的某個Pod上。對每一個TCP類型的service,kube-proxy都會在本地Node上建立一個socketserver來負責接收請求,然後按照策略發送到後端某個Pod埠上。這個過程默認採用Round Robin負載均衡算法。

相關焦點

  • ASP.NET Core on K8s學習之旅(12)Ingress
    ):(1)將原本為Deployment的類型換為了DaemonSet(2)為Ingress-Controller增加hostNetwork: true的配置,即直接佔用宿主機80/443埠(3)將Ingress-Controller部署到有ingressHost: yes這個label的Node節點上,即我的k8s-node1伺服器上(4)將
  • 《蹲坑學K8S》之20-1:NFS(無狀態)存儲
    -1 ~]# showmount -e 192.168.1.4[root@k8s-node-2 ~]# showmount -e 192.168.1.4: ServiceAccountmetadata:  name: nfs-client-provisioner ---kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata:  name: nfs-client-provisioner-runnerrules:  - apiGroups
  • 半小時搭建一套帶Dashboard的kubernetes(K8S)集群
    K8Skubernetes(K8S)是什麼Kubernetes(常簡稱為K8S)是用於自動部署、擴展和管理容器化(containerized)應用程式的開源系統。系統由Google設計並捐贈給Cloud Native Computing Foundation(今屬Linux基金會)來使用。它旨在提供「跨主機集群的自動部署、擴展以及運行應用程式容器的平臺」。它支持一系列容器工具, 包括Docker等。
  • 和我一起學k8s(一)初識kubernetes
    不過回顧歷史,在2013年,docker的問世,以其簡練易用的使用方式,極大的降低了容器的使用門檻,但是由單機走向集群已成為必然,隨後kubernetes橫空出世,並且由Google聯合20多家公司一起創立了CNCF(Cloud Native Computing Foundation,雲原生計算基金會),一起推廣kubernetes,開創了雲原生的新時代。
  • 和我一起學k8s(二)二進位部署一套k8s集群
    k8s02 192.168.1.33 k8s03EOF4、免密鑰在k8s-master節點上操作ssh-keygen -f /root/.ssh/id_rsa -P &39; -qssh-copy-id k8s01ssh-copy-id
  • 《蹲坑學K8S》之20-2:NFS(有狀態)存儲
    [root@storage ~]# systemctl start nfs-server.service[root@storage ~]# systemctl enable nfs-server.service在Node上測試[root@k8s-node
  • 陰陽師妖刀之秘籍副本1-10層攻略附通關陣容
    陰陽師妖刀之秘籍副本1-10層怎麼達?妖刀副本式神陣容?1速需要多少呢?
  • 記一次內部培訓:基於k8s的Ingress快速部署hexo博客
    簡介: 很多人說19年是原生雲的元年,之前沒感覺,這次在雲棲大會看到大家對原生雲的熱情,相信確實在進入原生雲推廣爆發期,就像15年的大數據技術的基礎hadoop一樣,k8s作為CNCF基金會的第一個暖化出來的項目,是不可撼動的基礎,因此為了讓大家快速熟悉k8s的基本操作,通過記錄hexo在k8s的部署來讓大家對k8s有個初步的影響
  • 聖鬥士星矢老玩家回歸必看 四大秘籍助您快速成長
    今天小編給大家分享的是聖鬥士星矢手遊老玩家回歸必看四大秘籍,助您快速成長!一起來看看吧!
  • 《granny》手遊怎麼過 遊戲通關秘籍攻略
    這款遊戲如果你沒有做好心理準備的話肯定會讓你「大吃一驚」,畢竟這個體驗過後就知道,這不是驚訝,而是驚嚇,如果你沒有通關的不妨可以看下其他玩家分享的心得,同時還有個彩蛋可以嘗試一下。 一開始,先看看抽屜裡有什麼,然後去廁所快速看看洗手臺和廁所浴缸,不要停!直接去你出生點的左邊的房間,飛速打開抽屜有什麼就撿什麼,記住,如果有好的道具先撿好的,比如說麻醉弩的鑰匙。
  • Dvwa 通關秘籍(上篇)
    測試模塊1:Brute Force暴力破解一般指窮舉法,窮舉法的基本思想是根據題目的部分條件確定答案的大致範圍,並在此範圍內對所有可能的情況逐一驗證,直到全部情況驗證完畢。若某個情況驗證符合題目的全部條件,則為本問題的一個解;若全部情況驗證後都不符合題目的全部條件,則本題無解。
  • 國內快速部署kubernetes集群的最佳實踐(二)——安裝指定版本
    在上一篇文章中(),已經說明了如何使用kubeadm安裝最新穩定版k8s本文探討如何在上一篇教程的基礎上,修改一些步驟,實現安裝指定版本的k8s,並在這裡提供兩個示例:安裝k8s v1.16和k8s v1.14。
  • 關於kubernetes(k8s),這可能是講的最通俗易懂的一次了
    Kubernetes (簡稱k8s)近兩年大火,如果你是一名雲計算從業者,或者運維人員,還不了解kubernetes 的話那你已經OUT了。容器技術最早應用在Linux作業系統,稱為Linux Container(LXC),早期在網際網路公司開始使用部署分布式應用,隨後隨著容器管理器(Docker、Rocket和CloudFoundary Garden)興起,定製容器宿主作業系統(CoreOS、Ubuntu Snappy、Red Hat Atomic)盛行,容器被有效構建和管理、並在各行各業普遍使用和認可。
  • 免翻牆安裝k8s 1.15.1
    ,可惜需要科學上網真正快速方便。:v1.15.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.1 k8s.gcr.io/kube-proxy:v1.15.1 docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.1
  • 分享一下Kubernetes(k8s)動態垂直縮放的相關知識
    而像內存這樣的資源,則被稱作「不可壓縮資源(incompressible resources)。當不可壓縮資源不足時,Pod 就會因為 OOM(Out-Of-Memory)被內核殺掉。而由於 Pod 可以由多個 Container 組成,所以 CPU 和內存資源的限額,是要配置在每個 Container 的定義上的。
  • k8s集群搭建
    kubeadmkubeadm 是官方社區推出的一個用於快速部署 kubernetes 集群的工具。、k8s-node1、k8s-node2啟動3臺虛擬機,並設置好網絡設置linux環境(三個節點都執行)關閉防火牆systemctl stop firewalldsystemctl
  • 利用kubeadm快速構建k8s-1.18.5環境
    本篇我們就來說說極其火熱的k8s,希望大家可以有所收穫!!!為什麼需要構建k8s集群環境如題,無論我們的產品2b還是2c,通常來說我們都會有多個不同的版本已滿足不同的需求。以我的經驗來說,我們通常會有開發環境(dev)、測試環境(test)、演示環境(show)、生產環境(product)。有以上但不僅限於此,我們主要是體現「多」。
  • k8s版本平滑升級
    容器化技術興起後,k8s無疑成為了容器編排技術的事實標準。各行各業軟體領域的廣泛應用,進一步促進了k8s的快速發展,對應版本的更新也層出不窮。實際項目使用過程中,可能會遇到框架層面的bug在新版本中得到修復,高版本的一些特性剛好滿足新的業務需求,這時候就需要在原有k8s集群上進行升級。如何快速、平滑的實現k8s的版本更新?
  • 這有一份「通關秘籍」請查收!
    歡迎來到今天的「乳腺癌闖關秘籍」收割現場,領取屬於你的通關秘籍吧。 一、保乳手術復發風險很大,為了活命,我還是選擇全切?這麼做對嗎? 這種想法肯定是誤區啦!
  • 紀念碑谷第六關通關秘籍
    紀念碑谷第六關通關秘籍時間:2016-08-10 13:50   來源:川北在線整理   責任編輯:沫朵 川北在線核心提示:原標題:紀念碑谷第六關怎麼過? 紀念碑谷第六關通關秘籍 紀念碑谷第六關怎麼過?小夥伴都還不知道怎麼通關吧,下面綠茶小編給大家介紹一下紀念碑谷第六關圖文攻略。