【特別版】Kubernetes集群安裝(1master,2node)

Kubernetes集群安裝

虛擬機準備

按照三臺虛擬機標準,一臺控制節點兩臺工作節點

主機名ip配置要求
master-k8s192.168.242.102GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更多
node01-k8s192.168.242.112GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更多
nide02-k8s192.168.242.122GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更多

系統初始化配置(三臺節點相同)

關閉防火墻(不贅述)

關閉 selinux (不贅述)

關閉swap

swapoff -a # 臨時關閉vi /etc/fstab #永久關閉 
注釋swap開機掛載行 sed -i 's/.swap./#&/' /etc/fstab

設置時間同步

yum install ntpdate -y
ntpdate us.pool.ntp.org
hwclock -w

每臺主機添加hosts:

cat >> /etc/hosts << EOF
192.168.242.10 master-k8s
192.168.242.11 node01-k8s
192.168.242.12 node02-k8s
EOF

到這里最好重啟一下系統

所有節點安裝Docker/kubeadm/kubelet/kubectl

安裝Docker(所有節點)

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo# 看一下可用版本
yum list docker-ce --showduplicates |sort -r
# 安裝20版本的docker與客戶端
yum -y install docker-ce-20* docker-ce-cli-20*
# 設置docker自啟動
systemctl enable docker && systemctl start docker
docker --version

配置Docker加速鏡像

vi /etc/docker/daemon.json# 寫入以下格式的鏡像地址(可用鏡像需自行測試是否可用)
{ "registry-mirrors": ["https://docker.xuanyuan.me/"] }# 重啟docker
systemctl daemon-reload
systemctl restart docker# 查看生效的鏡像(如果生效,會列出生效的鏡像地址)
docker info | grep -i -A5 'Registry Mirrors'

安裝docker命令補全(可選)

yum install bash-completion -ycurl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-composesource /etc/bash_completion.d/docker-compose## exit后重新登入即可使用docker命令補全

將橋接的IPv4流量傳遞到iptables的鏈**(所有節點)**

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF# 加載br_netfilter模塊
modprobe br_netfilter# 查看是否加載
lsmod | grep br_netfilter# 生效
sysctl --system  

在這里插入圖片描述

安裝kubeadm,kubelet和kubectl(所有節點)

# 添加yum源
vi /etc/yum.repos.d/kubernetes.repo[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0# 更新yum源
yum clean all
yum makecache fast#  安裝kubeadm,kubelet和kubectl
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
systemctl restart kubelet
systemctl enable kubelet

主節點配置

ssh密鑰生成并分發

# 生成密鑰
ssh-keygen -t rsa# 分發密鑰給工作節點
ssh-copy-id -i .ssh/id_rsa.pub root@node01-k8s
ssh-copy-id -i .ssh/id_rsa.pub root@node02-k8s

部署Kubernetes Master(這一步建議所有節點都做一遍,因為下面很快就會看到血淋淋的教訓了!!!)

# 下載依賴(因為實測直接運行下面會提示缺少google_containers……這個鏡像,可能是沒有1.8.0版本,所以直接手動pull一個,改一下標簽名)
docker pull coredns/coredns:1.8.0#  將coredns/coredns:1.8.0 鏡像標記為google_containers……docker tag coredns/coredns:1.8.0 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0# 這里網絡較慢,請耐心等待……

指定阿里云鏡像倉庫地址

# apiserver-advertise-address值是主機的ip,其他的無需更改kubeadm init \--apiserver-advertise-address=192.168.242.10 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.21.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16# 這里網絡較慢,請耐心等待……

根據提示信息,在Master節點上運行命令

在這里插入圖片描述

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

!!!重要提示,上一部完成的時候末尾會顯示一個token,請保管好,一會兒添加節點這是憑證!!!

在這里插入圖片描述

工作節點配置(所有工作節點)

# 在daemon.json文件中指定驅動
cat /etc/docker/daemon.json{"registry-mirrors": ["https://docker.xuanyuan.me/"],"exec-opts":["native.cgroupdriver=systemd"]}# 確定文件如上含有"exec-opts":["native.cgroupdriver=systemd"]即可。# 重啟docker
systemctl restart docker
# 看一下狀態,確定上面配置文件沒錯,docker正常運行
systemctl status docker

將工作節點加入Kubernetes Node(請輸入自己的token)

# 所有工作節點均粘貼此命令
kubeadm join 192.168.242.10:6443 --token y868jj.hoknpgwpykqodf41 \--discovery-token-ca-cert-hash sha256:af0db6d53cb1bc5cf66f7fa2cc86f5221c6bca9c5682075c61a88d6bf7c8198e

!!!!!這一步卡住不動的,一定一定要檢查自己的防火墻和selinux是否關閉!!!!!!

在主節點上將/etc/kubernetes/admin.conf文件copy到工作節點上

# 主節點上copy文件
scp /etc/kubernetes/admin.conf node01-k8s:/etc/kubernetes/
scp /etc/kubernetes/admin.conf node02-k8s:/etc/kubernetes/# 分別在每個node上運行以下命令:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

加入成功在三臺機器上運行kubectl get nodes都會有如下效果**(!!!注意,你的應該是node01和node02狀態是Ready,我這里出錯了)**

注意,每臺機器上都是一樣的才說明沒問題,某一臺不是下圖這種就說明有問題!!!

在這里插入圖片描述

安裝Pod網絡插件(主節點)

# 可能需要魔法,如果下載不了就下載到本地后上傳服務器wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f kube-flannel.yml# 注意這里網絡可能不好,可以檢查一下下載網速,可以看出是在下載中。kubectl get pods -n kube-system也可以看到前兩個pod的狀態是Pending

如果這里狀態變為ImagePullBackOff可以看一下自己的pod詳細描述,這里舉一個例子

在這里插入圖片描述

上面顯示ImagePullBackOff,說明有問題,可以使用kubectl describe pod coredns-545d6fc579-rddhk -n kube-system命令進行查看(注意換成自己的pod名)

在這里插入圖片描述

可以看到coredns的pod被調度到k8s-node01上了,而這個節點沒有對應的鏡像,也就是下面圖中我說過的,建議都做一遍(為什么現在才說,因為本人忘記配置了,在這里報錯后才想起來,括號里的字也是這時候補上的,懶得調整格式了)

在這里插入圖片描述

ok,做完這一切,完全恢復正確了。

在這里插入圖片描述

這里可以看見master狀態也是Ready

在這里插入圖片描述

安裝命令補全工具(可以Tab補齊命令!)

yum -y install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

!!一定要看!!

集群搭建完結撒花(本文最后兩張圖的所有STATUS務必是Running和Ready,這才代表你可以完結撒花)

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

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

相關文章

Excel點擊單元格內容消失

Excel點擊單元格內容消失 前言一、原因說明二、解決方案1.菜單欄中找到“審閱”&#xff0c;選擇“撤銷工作表保護”2.輸入密碼3.解除成功 前言 Excel想要編輯單元格內容時&#xff0c;無論是單擊還是雙擊單元格內容都莫名其妙的消失了 一、原因說明 單擊或者雙擊Excel中單元…

最優化方法Python計算:有約束優化應用——線性Lasso回歸預測器

實際應用中&#xff0c;特征維度 n n n通常遠大于樣本容量 m m m&#xff08; n ? m n\ll m n?m&#xff09;&#xff0c;這種高維小樣本場景下特征數據可能含有對標簽數據 y i y_i yi?的取值不必要的成分&#xff0c;甚至是噪聲。此時&#xff0c;我們希望回歸模型中的優化…

如何為APP應用程序選擇合適的服務器

搭建一個成功的APP應用程序&#xff0c;服務器選擇是至關重要的決策之一。合適的服務器不僅能確保應用流暢運行&#xff0c;還能節省成本并保障安全性。本文將為您詳細解析如何為APP選擇最佳服務器方案。 一、了解您的APP需求 在選擇服務器前&#xff0c;首先需要明確您的應用…

k8s(11) — 探針和鉤子

鉤子和探針的區別&#xff1a; 在 Kubernetes&#xff08;k8s&#xff09;中&#xff0c;鉤子&#xff08;Hooks&#xff09;和探針&#xff08;Probes&#xff09;是保障應用穩定運行的重要機制&#xff0c;不過它們的用途和工作方式存在差異&#xff0c;以下為你詳細介紹&…

Kafka消息隊列之 【消費者分組】 詳解

消費者分組(Consumer Group)是 Kafka 提供的一種強大的消息消費機制,它允許多個消費者協同工作,共同消費一個或多個主題的消息,從而實現高吞吐量、可擴展性和容錯性。 基本概念 消費者分組:一組消費者實例的集合,這些消費者實例共同訂閱一個或多個主題,并通過分組來協調…

什么是Blender?怎么獲取下載Blender格式文件模型

glbxz.com glbxz.com 官方可以下載Blender格式文件模型 BlenderBlender 是一個免費的開源程序&#xff0c;用于建模和動畫&#xff0c;最初由一家名為 Neo Geo 的動畫工作室作為內部應用程序開發&#xff0c;后來作為自己的程序發布。這是一個稱職的程序&#xff0c;近年來由于…

IC ATE集成電路測試學習——PLL測試(一)

PLL測試 什么是PLL&#xff1f; PLL Phase-Locked Loop&#xff08;鎖相環&#xff09;它的作用就是&#xff1a;把低速、穩定的外部時鐘&#xff0c;轉換成芯片內部需要的高速時鐘。 PLL的作用 我們知道&#xff0c;芯片的內部不同的模塊&#xff0c;很可能用的不是一個頻…

ReaRAG:教 AI 思考、搜索和自我糾正以獲得事實準確答案(含git實現)

推理模型&#xff08;LRMs&#xff09;的發展取得了顯著進展&#xff0c;展現出強大的推理能力&#xff0c;能在復雜任務中表現出色。然而&#xff0c;這些模型在多跳問答&#xff08;QA&#xff09;任務中仍面臨挑戰&#xff0c;主要歸因于其對參數化知識的依賴&#xff0c;導…

第2章——springboot核心機制

一、為何以繼承方式引入SpringBoot 1.提出疑問 以前我們在開發項目時&#xff0c;需要什么&#xff0c;引入對應的依賴就行&#xff0c;比如我們需要連接mysql數據&#xff0c;則引入mysql驅動的依賴&#xff0c;如下&#xff1a; <dependency><groupId>com.mys…

網絡接入服務商查詢

要查詢網站的 網絡接入服務商&#xff08;即網站服務器托管或接入的ISP公司&#xff09;&#xff0c;可以通過以下方法進行查詢&#xff1a; 方法1&#xff1a;通過IP地址查詢 步驟1&#xff1a;獲取網站IP 使用 ping 命令&#xff1a; ping example.com 返回的IP地址即為服務…

超詳細!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 實戰)

目錄 前言 1.什么是 BehaviorRelay 2.基本使用方式 3.BehaviorRelay的常用API 4.BehaviorRelay 和其它類型的對比 5.BehaviorRelay的使用場景 1.綁定UITableView 2.MVVM 場景下使用 BehaviorRelay 6.使用注意事項以及建議 1.注意事項 2.使用建議總結 7.推薦閱讀 前…

vue-grid-layout實現拖拽修改工作臺布局

效果圖 vue-grid-layout 文檔地址&#xff1a;vue-grid-layout 官網介紹&#xff1a; 使用 // 安裝&#xff1a; npm install vue-grid-layout --save// 引用&#xff1a; import { GridLayout, GridItem } from vue-grid-layout// 注冊&#xff1a; components:{ GridLay…

windows使用bat腳本激活conda環境

本文不生產技術&#xff0c;只做技術的搬運工&#xff01;&#xff01;&#xff01; 前言 最近需要在windows上使用批處理腳本執行一些python任務&#xff0c;但是被自動激活conda環境給卡住了&#xff0c;研究了一下解決方案 解決方案 call your_conda_path\Scripts\activa…

u-boot學習筆記(四)

文章目錄 cmd/sub_cmd/exit.cdo_exit()exit.c可提供的命令及使用方式&#xff1a; ext2.cdo_ext2ls()do_ext2load()ext2.c可提供的命令及使用方式&#xff1a; ext4.cdo_ext4_size()do_ext4_load()do_ext4_ls()do_ext4_write()ext4.c可提供的命令及使用方式&#xff1a; fastbo…

OpenCV 圖形API(80)圖像與通道拼接函數-----仿射變換函數warpAffine()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 對圖像應用仿射變換。 函數 warpAffine 使用指定的矩陣對源圖像進行變換&#xff1a; dst ( x , y ) src ( M 11 x M 12 y M 13 , M 21 x M…

《React Native熱更新實戰:用Pushy打造無縫升級體驗》

《React Native熱更新實戰:用Pushy打造應用“空中加油”,實現無縫升級體驗》 寫在前面:當你的APP需要"空中加油"時… 想象一下這樣的場景:凌晨2點,你的React Native應用剛上線就爆出重大BUG,用戶差評如潮水般涌來,應用商店審核至少需要3天…此刻你多么希望能…

《社交應用架構生存戰:React Native與Flutter的部署容災決勝法則》

React Native和Flutter作為當下熱門的跨平臺開發框架&#xff0c;在社交應用開發領域各顯神通。今天&#xff0c;我們深入探索它們在高可用架構中的部署與容災策略。 React Native憑借其獨特優勢&#xff0c;在社交應用開發中擁有一席之地。它基于JavaScript和React&#xff0…

網絡靶場基礎知識

一、網絡靶場的核心概念 網絡靶場&#xff08;Cyber Range&#xff09;是一種基于虛擬化和仿真技術的網絡安全訓練與測試平臺&#xff0c;通過模擬真實網絡環境和業務場景&#xff0c;為攻防演練、漏洞驗證、安全測試和人才培養提供安全可控的實驗空間。其核心目標是通過“虛實…

AutoGen 框架解析:微軟開源的多人 Agent 協作新范式

一、引言 在大語言模型&#xff08;LLM&#xff09;快速發展的今天&#xff0c;復雜任務的自動化協作需求日益增長。微軟開源的AutoGen 框架&#xff08;GitHub Star 超 10 萬&#xff09;提供了一種基于多智能體對話的協作范式&#xff0c;通過自然語言交互實現多角色 Agent …

極簡遠程革命:節點小寶 — 無公網IP的極速內網穿透遠程解決方案

極簡遠程革命&#xff1a;節點小寶&#xff0c;讓家庭與職場無縫互聯 ——打破公網桎梏&#xff0c;重塑數字生活新體驗 關鍵詞&#xff1a;節點小寶&#xff5c;內網穿透&#xff5c;P2P直連&#xff5c;家庭網絡&#xff5c;企業協作&#xff5c;智能組網節點小寶&#xff5…