【4】搭建k8s集群系列(二進制部署)之安裝master節點組件(kube-apiserver)

一、下載k8s二進制文件

下載地址:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG
-1.20.md

注:打開鏈接你會發現里面有很多包,下載一個 server 包就夠了,包含了 Master 和 Worker Node 二進制文件。
在這里插入圖片描述

二、解壓二進制包

# 創建工作目錄
mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}
# 解壓
tar zxvf kubernetes-server-linux-amd64.tar.gz
cd kubernetes/server/bin
cp kube-apiserver kube-scheduler kube-controller-manager /opt/kubernetes/bin
cp kubectl /usr/bin/

三、部署 kube-apiserver

3.1 創建配置文件

cat > /opt/kubernetes/cfg/kube-apiserver.conf << EOF
KUBE_APISERVER_OPTS="--logtostderr=false \\
--v=2 \\
--log-dir=/opt/kubernetes/logs \\
--etcd-servers=https://192.168.1.20:2379,https://192.168.1.21:2379,https://192.168.1.22:2379 \\
--bind-address=192.168.1.20 \\
--secure-port=6443 \\
--advertise-address=192.168.1.20 \\
--allow-privileged=true \\
--service-cluster-ip-range=10.0.0.0/24 \\
--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction\\
--authorization-mode=RBAC,Node \\
--enable-bootstrap-token-auth=true \\
--token-auth-file=/opt/kubernetes/cfg/token.csv \\
--service-node-port-range=30000-32767 \\
--kubelet-client-certificate=/opt/kubernetes/ssl/server.pem \\
--kubelet-client-key=/opt/kubernetes/ssl/server-key.pem \\
--tls-cert-file=/opt/kubernetes/ssl/server.pem \\
--tls-private-key-file=/opt/kubernetes/ssl/server-key.pem \\
--client-ca-file=/opt/kubernetes/ssl/ca.pem \\
--service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \\
--service-account-issuer=api \\
--service-account-signing-key-file=/opt/kubernetes/ssl/server-key.pem \\
--etcd-cafile=/opt/etcd/ssl/ca.pem \\
--etcd-certfile=/opt/etcd/ssl/server.pem \\
--etcd-keyfile=/opt/etcd/ssl/server-key.pem \\
--requestheader-client-ca-file=/opt/kubernetes/ssl/ca.pem \\
--proxy-client-cert-file=/opt/kubernetes/ssl/server.pem \\
--proxy-client-key-file=/opt/kubernetes/ssl/server-key.pem \\
--requestheader-allowed-names=kubernetes \\
--requestheader-extra-headers-prefix=X-Remote-Extra- \\
--requestheader-group-headers=X-Remote-Group \\
--requestheader-username-headers=X-Remote-User \\
--enable-aggregator-routing=true \\
--audit-log-maxage=30 \\
--audit-log-maxbackup=3 \\
--audit-log-maxsize=100 \\
--audit-log-path=/opt/kubernetes/logs/k8s-audit.log"
EOF
注:上面兩個\ \ 第一個是轉義符,第二個是換行符,使用轉義符是為了使用 EOF
保留換行符。
? --logtostderr:啟用日志
? ---v:日志等級
? --log-dir:日志目錄
? --etcd-servers:etcd 集群地址
? --bind-address:監聽地址
? --secure-port:https 安全端口
? --advertise-address:集群通告地址
? --allow-privileged:啟用授權
? --service-cluster-ip-range:Service 虛擬 IP 地址段
? --enable-admission-plugins:準入控制模塊
? --authorization-mode:認證授權,啟用 RBAC 授權和節點自管理
? --enable-bootstrap-token-auth:啟用 TLS bootstrap 機制
? --token-auth-file:bootstrap token 文件
? --service-node-port-range:Service nodeport 類型默認分配端口范圍
? --kubelet-client-xxx:apiserver 訪問 kubelet 客戶端證書
? --tls-xxx-file:apiserver https 證書
? 1.20 版本必須加的參數:--service-account-issuer,--service-account-
signing-key-file
? --etcd-xxxfile:連接 Etcd 集群證書
? --audit-log-xxx:審計日志
? 啟動聚合層相關配置:--requestheader-client-ca-file,--proxy-client-
cert-file,--proxy-client-key-file,--requestheader-allowed-
names,--requestheader-extra-headers-prefix,--requestheader-group-
headers,--requestheader-username-headers,--enable-aggregator-
routing

3.2 拷貝上一篇文章生成的證書

cp ~/TLS/k8s/ca*pem ~/TLS/k8s/server*pem /opt/kubernetes/ssl/

3.3 啟用 TLS Bootstrapping 機制

TLS Bootstraping:Master apiserver 啟用 TLS 認證后,Node 節點 kubelet 和kube-proxy 要與 kube-apiserver 進行通信,必須使用 CA 簽發的有效證書才可以,當 Node 節點很多時,這種客戶端證書頒發需要大量工作,同樣也會增加集群擴展復雜度。為了簡化流程,Kubernetes 引入了 TLS bootstraping 機制來自動頒發客戶端證書,kubelet 會以一個低權限用戶自動向 apiserver 申請證書,kubelet 的證書由 apiserver 動態簽署。所以強烈建議在 Node 上使用這種方式,目前主要用于 kubelet,kube-proxy 還是由我們統一頒發一個證書。

TLS bootstraping 工作流程:
在這里插入圖片描述
創建上述配置文件中 token 文件:

cat > /opt/kubernetes/cfg/token.csv << EOF
c47ffb939f5ca36231d9e3121a252940,kubelet-bootstrap,10001,"system:node-bootstrapper"
EOF

格式:token,用戶名,UID,用戶組
token 也可自行生成替換:

head -c 16 /dev/urandom | od -An -t x | tr -d ' '

3.4 systemd 管理 apiserver

cat > /usr/lib/systemd/system/kube-apiserver.service << EOF
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=/opt/kubernetes/cfg/kube-apiserver.conf
ExecStart=/opt/kubernetes/bin/kube-apiserver \$KUBE_APISERVER_OPTS
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

3.5 啟動并設置開機啟動

systemctl daemon-reload
systemctl start kube-apiserver
systemctl enable kube-apiserver

3.6查看啟動狀態

ps -ef | grep kube-apiserver

輸出:
在這里插入圖片描述
如果啟動失敗,通過以下方式查看日志:

journalctl -u kube-apiserver

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76038.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電子電氣架構 --- AUTOSAR 的信息安全架構

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

ROS2與OpenAI Gym集成指南:從安裝到自定義環境與強化學習訓練

1.理解 ROS2 和 OpenAI Gym 的基本概念 ROS2&#xff08;Robot Operating System 2&#xff09;&#xff1a;是一個用于機器人軟件開發的框架。它提供了一系列的工具、庫和通信機制&#xff0c;方便開發者構建復雜的機器人應用程序。例如&#xff0c;ROS2 可以處理機器人不同組…

【設計模式】創建型 -- 單例模式 (c++實現)

文章目錄 單例模式使用場景c實現靜態局部變量餓漢式&#xff08;線程安全&#xff09;懶漢式&#xff08;線程安全&#xff09;懶漢式&#xff08;線程安全&#xff09; 智能指針懶漢式(線程安全)智能指針call_once懶漢式(線程安全)智能指針call_onceCRTP 單例模式 單例模式是…

C語言之九九乘法表

一、代碼展示 二、運行結果 三、代碼分析 首先->是外層循環是小于等于9的 然后->是內層循環是小于等于外層循環的 最后->就是\n讓九九乘法表的格式更加美觀(當然 電腦不同 有可能%2d 也有可能%3d) 四、與以下素數題目邏輯相似 五、運行結果

自動化備份全網服務器數據平臺

自動化備份全網服務器數據平臺 項目背景知識 總體需求 某企業里有一臺Web服務器&#xff0c;里面的數據很重要&#xff0c;但是如果硬盤壞了數據就會丟失&#xff0c;現在領導要求把數據做備份&#xff0c;這樣Web服務器數據丟失在可以進行恢復。要求如下&#xff1a;1.每天0…

stm32+esp8266+機智云手機app

現在很多大學嵌入式畢設都要求云端控制&#xff0c;本文章就教一下大家如何使用esp8266去連接機智云的app去進行顯示stm32的外設傳感器數據啊&#xff0c;控制一些外設啊等。 因為本文章主要教大家如何移植機智云的代碼到自己的工程&#xff0c;所以前面的一些準備工作&#x…

時序數據庫 TDengine Cloud 私有連接實戰指南:4步實現數據安全傳輸與成本優化

小T導讀&#xff1a;在物聯網和工業互聯網場景下&#xff0c;企業對高并發、低延遲的數據處理需求愈發迫切。本文將帶你深入了解 TDengineCloud 如何通過全托管服務與私有連接&#xff0c;幫助企業實現更安全、更高效、更低成本的數據采集與傳輸&#xff0c;從架構解析到實際配…

【Java面試系列】Spring Boot中自動配置原理與自定義Starter開發實踐詳解 - 3-5年Java開發必備知識

【Java面試系列】Spring Boot中自動配置原理與自定義Starter開發實踐詳解 - 3-5年Java開發必備知識 引言 Spring Boot作為Java生態中最流行的框架之一&#xff0c;其自動配置機制和Starter開發是面試中的高頻考點。對于3-5年經驗的Java開發者來說&#xff0c;深入理解這些原理…

解決Spring Boot Test中的ByteBuddy類缺失問題

目錄 解決Spring Boot Test中的ByteBuddy類缺失問題前奏問題描述問題解決第一步&#xff1a;移除ByteBuddy的特定版本號第二步&#xff1a;更新maven-surefire-plugin配置第三步&#xff1a;清理并重新構建項目 結語 解決Spring Boot Test中的ByteBuddy類缺失問題 前奏 今天&…

IntelliJ IDEA使用技巧(json字符串格式化)

文章目錄 一、IDEA自動格式化json字符串二、配置/查找格式化快捷鍵 本文主要講述idea中怎么將json字符串轉換為JSON格式的內容并且有層級結構。 效果&#xff1a; 轉換前&#xff1a; 轉換后&#xff1a; 一、IDEA自動格式化json字符串 步驟一&#xff1a;首先創建一個臨…

眨眼睛查看密碼工具類

“眨眼睛查看密碼”工具類實現思路&#xff1a; 一、核心功能 實現點擊眼睛圖標切換密碼明文/星號顯示&#xff0c;提升表單輸入體驗。包含以下關鍵功能&#xff1a; ? 初始狀態&#xff1a;密碼框顯示為星號&#xff0c;閉眼圖標可見。 ? 點擊閉眼圖標&#xff1a;切換為明…

【GPT入門】第33課 從應用場景出發,區分 TavilyAnswer 和 TavilySearchResults,代碼實戰

【GPT入門】第33課 從應用場景出發&#xff0c;區分 TavilyAnswer 和 TavilySearchResults&#xff0c;代碼實戰 1. 區別應用場景 2. 代碼使用3.代碼執行效果 在langchain_community.tools.tavily_search中&#xff0c;TavilyAnswer和TavilySearchResults有以下區別和應用場景&…

【Java設計模式】第10章 外觀模式講解

10. 外觀模式 10.1 外觀模式講解 定義:為子系統提供統一接口,簡化調用。類型:結構型模式適用場景: 子系統復雜需簡化調用分層系統需統一入口優點: 降低耦合符合迪米特法則(最少知道原則)缺點: 擴展子系統需修改外觀類,違反開閉原則10.2 外觀模式 Coding // 子系統:…

Dubbo的簡單介紹

Dubbo的簡單介紹 Dubbo 是一個高性能的 Java RPC 框架&#xff0c;最初由阿里巴巴開發&#xff0c;用于構建分布式服務。它主要用于提供服務間的通信&#xff0c;支持高效的遠程調用和服務治理&#xff0c;常用于大規模分布式系統中。Dubbo 提供了以下幾個核心功能&#xff1a…

每日一題(小白)數組娛樂篇17

對一個數組進行接收進行操作后輸出。輸入三個操作數abc&#xff0c;將數組下標a到b的數字加上c&#xff1b;輸入四個操作數abcd&#xff0c;將下標c到d的數字復制到a到b&#xff0c;可以借用一個中間量數組實現&#xff1b;兩個操作數ab&#xff0c;將數組下標a到b的數字加和輸…

總結一下常見的EasyExcel面試題

說一下你了解的POI和EasyExcel POI&#xff08;Poor Obfuscation Implementation&#xff09;&#xff1a;它是 Apache 軟件基金會的一個開源項目&#xff0c;為 Java 程序提供了讀寫 Microsoft Office 格式文件的功能&#xff0c;支持如 Excel、Word、PowerPoint 等多種文件格…

01-Redis-基礎

1 redis誕生歷程 redis的作者筆名叫做antirez&#xff0c;2008年的時候他做了一個記錄網站訪問情況的系統&#xff0c;比如每天有多少個用戶&#xff0c;多少個頁面被瀏覽&#xff0c;訪客的IP、操作系統、瀏覽器、使用的搜索關鍵詞等等(跟百度統計、CNZZ功能一樣)。最開始存儲…

在 Ubuntu 上離線安裝 Prometheus 和 Grafana

在 Ubuntu 上離線安裝 Prometheus 和 Grafana 的步驟如下: 一.安裝驗證 二.安裝步驟 1.準備離線安裝包 在一臺可以訪問互聯網的機器上下載 Prometheus 和 Grafana 的二進制文件。 Prometheus 下載地址:Prometheus 官方下載頁面Grafana 下載地址:Grafana 官方下載頁面下載所…

mapbox基礎,加載ESRI OpenStreetMap開放街景標準風格矢量圖

????? 主頁: gis分享者 ????? 感謝各位大佬 點贊?? 收藏? 留言?? 加關注?! ????? 收錄于專欄:mapbox 從入門到精通 文章目錄 一、??前言1.1 ??mapboxgl.Map 地圖對象1.1 ??mapboxgl.Map style屬性二、??加載ESRI OpenStreetMap開放街景標準風…

Java 集合有序性與重復性總結及記憶技巧

Java 集合有序性與重復性總結及記憶技巧 一、集合分類速查表 集合類型是否有序是否允許重復記憶口訣ArrayList? 有序&#xff08;插入順序&#xff09;? 可重復"數組列表&#xff0c;順序記牢"LinkedList? 有序&#xff08;插入順序&#xff09;? 可重復"…