Kubernetes集群環(huán)境初始化
概念
k8s/kubernetes
容器化部署
解決容器編排問題,kubernetes為容器編排軟件的佼佼者
kubernets為一組服務(wù)器集群
功能
自我修復(fù) 一個(gè)容器崩潰,另一個(gè)容器起來
彈性伸縮 根據(jù)需要調(diào)整容器數(shù)量
服務(wù)發(fā)現(xiàn) 自動發(fā)現(xiàn)的形式找到所需依賴
負(fù)載均衡 一起分擔(dān)流量
版本回退 新版本有問題,立馬回退到原來的版本
存儲編排 可以根據(jù)容器自身的需求自動創(chuàng)建存儲卷
....
k8s組件
k8s為控制節(jié)點(diǎn) 和 工作節(jié)點(diǎn)組成。
master節(jié)點(diǎn)的組件
負(fù)責(zé)集群的管理
ApiServer:資源操作的唯一路口 接受命令,管理操作都是通過這個(gè)路口
Scheduler:負(fù)責(zé)根據(jù)算法,把活分給誰干?
ControllerManager:調(diào)度安排干活
Etcd:監(jiān)工記錄誰在干活做了什么
node節(jié)點(diǎn)的組件
負(fù)責(zé)提供運(yùn)行環(huán)境
kubelet:接受控制節(jié)點(diǎn)過來的信息,安排干活,控制docker操作
kubeproxy:提供對外訪問,跑了程序訪問程序。
docker:負(fù)責(zé)操作
用實(shí)例nginx來說明組件調(diào)度關(guān)系
master和node信息都存在etcd里來明確控制節(jié)點(diǎn)手下有幾個(gè)干活的
讓服務(wù)跑在k8s,apiserver接受命令
開始計(jì)算服務(wù)請求由誰來完成,通過讀node信息
知道由誰來完成,則使用controller-manager發(fā)送請求
kubelet等著接活的,安排給docker啟動一個(gè)prod。(目前prod和docker一回事,都是啟動程序的。prod為容器最小單元)
kubeproxy外面用戶可以訪問nignx了
master:集群控制節(jié)點(diǎn)至少一臺
node:工作負(fù)載節(jié)點(diǎn),做事的
pod:kubernets最小存儲單元,容器運(yùn)行在pod中,一個(gè)pod有多個(gè)容器(通過控制pod來控制容器進(jìn)而控制程序)
controller:啟動pod停止pod伸縮pod
service:對外服務(wù)的統(tǒng)一路口下面可以維護(hù)同一類的多個(gè)pod。流量流向誰呢?
label:對pod進(jìn)行分類同一類pod打上標(biāo)簽,service通過標(biāo)簽來控制流量
namespace:隔離pod的運(yùn)行環(huán)境
集群環(huán)境規(guī)劃
集群分兩類一主多從,多主多從
一主多從,服務(wù)器要是宕機(jī)了怎么辦?集群就完全完蛋了。只能是測試環(huán)境
多主多從,安全性非常高?搭建麻煩,適合生產(chǎn)環(huán)境
minikube 一個(gè)用于單節(jié)點(diǎn)測試
kubeadm 快速搭建kubernets集群
二進(jìn)制包 依次下載組件編譯安裝,組件之間要產(chǎn)生證書
環(huán)境搭建 選用vm虛擬三臺服務(wù)器
能互通網(wǎng)絡(luò),修改主機(jī)名
注意三臺主機(jī)都需要做
1.環(huán)境初始化
centos需要在7.5以上
cat /etc/redhat-release
2.測試環(huán)境做etchosts的域名解析真實(shí)環(huán)境推薦使用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.集群時(shí)間必須同步,企業(yè)里推薦搭建自己的時(shí)間服務(wù)器
systemctl start chronyd
date
4.禁用iptables與firewalld 生產(chǎn)環(huán)境防火墻一定要慎重
Kubernetes和Docker會產(chǎn)生大量iptables規(guī)則,為了不讓系統(tǒng)規(guī)則與之混淆,直接關(guān)閉系統(tǒng)的規(guī)則systemctl --now disable firewalld
systemctl stop iptables
systemctl disable iptables
(我沒有iptables)
5.禁用selinux
6.禁用swap分區(qū)
虛擬內(nèi)存分區(qū) 物理內(nèi)存使用完了,可以將物理空間虛擬成內(nèi)存。啟用swap設(shè)備會對系統(tǒng)的性能產(chǎn)生非常負(fù)面的影響。也可以告訴kubernetes我非要開這個(gè)分區(qū)
7.修改linux內(nèi)核參數(shù)
Kubernetes強(qiáng)制要求你這么做 添加網(wǎng)橋過濾和地址轉(zhuǎn)發(fā)功能
重載配置sysctl -p
加載網(wǎng)橋過濾模塊modprobe br_netfilter
查看網(wǎng)橋過濾模塊是否加載成功
8.配置ipvs功能
Service 做接口暴露 負(fù)載均衡 反向代理 一種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的內(nèi)容
查看對應(yīng)模塊是否加載成功
Centos版本太高導(dǎo)致報(bào)錯(cuò)
modprobe: FATAL: Module nf_conntrack_ipv4 not found in directory /lib/modules/4.18.0-373.el8.x86_64
解決報(bào)錯(cuò)
成功加載模塊
注意三臺服務(wù)器都要做
最后重啟
到此這篇關(guān)于Kubernetes集群環(huán)境初始化的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Rainbond功能架構(gòu)及應(yīng)用管理官方文檔介紹
這篇文章主要為大家介紹了Rainbond功能機(jī)構(gòu)及使用官方文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04tkestack/gpu-manager在k8s1.23版本之后的使用方法
這篇文章主要介紹了tkestack/gpu-manager在k8s1.23版本之后的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Rainbond上部署API?Gateway?Kong及環(huán)境配置教程
這篇文章主要為大家介紹了Rainbond上部署API?Gateway?Kong及環(huán)境配置教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Rainbond對前端項(xiàng)目Vue及React的持續(xù)部署
這篇文章主要為大家介紹了Rainbond對前端項(xiàng)目Vue及React的持續(xù)部署,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04詳解Kubernetes 中容器跨主機(jī)網(wǎng)絡(luò)
這篇文章主要為大家介紹了Kubernetes中容器跨主機(jī)網(wǎng)絡(luò)是怎么樣的,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04