網站首頁 編程語言 正文
概念
k8s/kubernetes
容器化部署
解決容器編排問題,kubernetes為容器編排軟件的佼佼者
kubernets為一組服務器集群
功能
自我修復 一個容器崩潰,另一個容器起來
彈性伸縮 根據需要調整容器數量
服務發現 自動發現的形式找到所需依賴
負載均衡 一起分擔流量
版本回退 新版本有問題,立馬回退到原來的版本
存儲編排 可以根據容器自身的需求自動創建存儲卷
....
k8s組件
k8s為控制節點 和 工作節點組成。
master節點的組件
負責集群的管理
ApiServer:資源操作的唯一路口 接受命令,管理操作都是通過這個路口
Scheduler:負責根據算法,把活分給誰干?
ControllerManager:調度安排干活
Etcd:監工記錄誰在干活做了什么
node節點的組件
負責提供運行環境
kubelet:接受控制節點過來的信息,安排干活,控制docker操作
kubeproxy:提供對外訪問,跑了程序訪問程序。
docker:負責操作
用實例nginx來說明組件調度關系
master和node信息都存在etcd里來明確控制節點手下有幾個干活的
讓服務跑在k8s,apiserver接受命令
開始計算服務請求由誰來完成,通過讀node信息
知道由誰來完成,則使用controller-manager發送請求
kubelet等著接活的,安排給docker啟動一個prod。(目前prod和docker一回事,都是啟動程序的。prod為容器最小單元)
kubeproxy外面用戶可以訪問nignx了
master:集群控制節點至少一臺
node:工作負載節點,做事的
pod:kubernets最小存儲單元,容器運行在pod中,一個pod有多個容器(通過控制pod來控制容器進而控制程序)
controller:啟動pod停止pod伸縮pod
service:對外服務的統一路口下面可以維護同一類的多個pod。流量流向誰呢?
label:對pod進行分類同一類pod打上標簽,service通過標簽來控制流量
namespace:隔離pod的運行環境
集群環境規劃
集群分兩類一主多從,多主多從
一主多從,服務器要是宕機了怎么辦?集群就完全完蛋了。只能是測試環境
多主多從,安全性非常高?搭建麻煩,適合生產環境
minikube 一個用于單節點測試
kubeadm 快速搭建kubernets集群
二進制包 依次下載組件編譯安裝,組件之間要產生證書
環境搭建 選用vm虛擬三臺服務器
能互通網絡,修改主機名
注意三臺主機都需要做
1.環境初始化
centos需要在7.5以上
cat /etc/redhat-release
2.測試環境做etchosts的域名解析真實環境推薦使用dns做域名解析
192.168.100.128 master master.example.com
192.168.100.130 node1 node1.example.com
192.168.100.129 node2 node2.example.com
3.集群時間必須同步,企業里推薦搭建自己的時間服務器
systemctl start chronyd
date
4.禁用iptables與firewalld 生產環境防火墻一定要慎重
Kubernetes和Docker會產生大量iptables規則,為了不讓系統規則與之混淆,直接關閉系統的規則systemctl --now disable firewalld
systemctl stop iptables
systemctl disable iptables
(我沒有iptables)
5.禁用selinux
6.禁用swap分區
虛擬內存分區 物理內存使用完了,可以將物理空間虛擬成內存。啟用swap設備會對系統的性能產生非常負面的影響。也可以告訴kubernetes我非要開這個分區
7.修改linux內核參數
Kubernetes強制要求你這么做 添加網橋過濾和地址轉發功能
重載配置sysctl -p
加載網橋過濾模塊modprobe br_netfilter
查看網橋過濾模塊是否加載成功
8.配置ipvs功能
Service 做接口暴露 負載均衡 反向代理 一種iptables 一種ipvs 相比較ipvs性能明顯高 需要手動載入ipvs模塊
安裝ipvsadm ipset
添加shell腳本,功能為加載模塊
[root@master ~]# cat > /etc/sysconfig/modules/ipvs.modules << q > #!/bin/bash > modprobe -- ip-vs > modprobe -- ip_vs_rr > modprobe -- ip_vs_wrr > modprobe -- ip_vs_sh > modprobe -- nf_conntrack_ipv4 > q
為ipvs的內容
?
查看對應模塊是否加載成功
Centos版本太高導致報錯
modprobe: FATAL: Module nf_conntrack_ipv4 not found in directory /lib/modules/4.18.0-373.el8.x86_64
解決報錯
成功加載模塊
注意三臺服務器都要做
最后重啟
原文鏈接:https://www.cnblogs.com/supermao12/p/16126037.html
相關推薦
- 2022-05-20 ASP.NET?MVC模式簡介_基礎應用
- 2022-05-28 python非單一.py文件用Pyinstaller打包發布成exe_python
- 2022-11-13 PyTorch模型的保存與加載方法實例_python
- 2022-05-27 Docker常見命令介紹_docker
- 2022-06-28 python神經網絡學習使用Keras進行回歸運算_python
- 2022-10-28 React?createElement方法使用原理分析介紹_React
- 2023-06-16 Pytorch中的?torch.distributions庫詳解_python
- 2022-07-06 C語言超細致講解分支語句_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支