云安全攻防(十二)之 手動搭建 K8S 環境搭建

手動搭建 K8S 環境搭建

首先前期我們準備好三臺 Centos7 機器,配置如下:

主機名IP系統版本
k8s-master192.168.41.141Centos7
k8s-node1192.168.41.142Centos7
k8s-node2192.168.41.143Centos7

前期準備

首先在三臺機器上都執行如下的命令

# 關閉防火墻
systemctl stop firewalld
systemctl disable firewalld
# 永久關閉 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 永久關閉 swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 修改/etc/hosts
vim /etc/hosts
192.168.41.141 k8s-master
192.168.41.142 k8s-node1
192.168.41.143 k8s-node2
# 將橋接的IPv4流量傳遞到iptables的鏈
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 生效
sysctl --system  
# 時間同步
yum install ntpdate -y
ntpdate time.windows.com

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

然后在三臺機器上都配置阿里云的 K8s 源,執行如下的命令

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

在這里插入圖片描述

然后在三臺機器上均安裝 docker、kubeadm、kubelet、kubectl

安裝 docker,在三臺機器上均執行如下的命令一鍵安裝

curl -s https://get.docker.com/ | sh

在這里插入圖片描述

如下所示安裝完成:

在這里插入圖片描述

配置docker鏡像下載加速器,執行如下的命令:

vim /etc/docker/daemon.json{"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
}#查看docker信息,進行確認
systemctl restart docker
docker info  

出現如下信息則顯示配置完成

在這里插入圖片描述

接著執行如下命令安裝 kubelet、kubeadm 和 kubectl

#安裝 kubelet、kubeadm 和 kubectl
yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
#設置 kubelet 開機自啟
systemctl enable kubelet

在這里插入圖片描述

部署 K8S-master

在 master 節點執行如下命令初始化 master

kubeadm init --apiserver-advertise-address=192.168.41.141 --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 --ignore-preflight-errors=all--apiserver-advertise-address 集群通告地址
--image-repository 由于默認拉取鏡像地址k8s.gcr.io國內無法訪問,這里指定阿里云鏡像倉庫地址
--kubernetes-version K8s版本,與上面安裝的一致
--service-cidr 集群內部虛擬網絡,Pod統一訪問入口
--pod-network-cidr Pod網絡,與下面部署的CNI網絡組件yaml中保持一致

或者使用配置文件引導:

vi kubeadm.conf
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.21.0
imageRepository: registry.aliyuncs.com/google_containers 
networking:podSubnet: 10.244.0.0/16 serviceSubnet: 10.96.0.0/12 

然后執行以下的命令初始化

kubeadm init --config kubeadm.conf --ignore-preflight-errors=all 

初始化完成后,最后會輸出一個 join命令,先記住,下面用

在這里插入圖片描述

然后拷貝kubectl使用的連接k8s認證文件到默認路徑:

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

在這里插入圖片描述

部署 K8S-node

在兩個 node 節點(192.168.41.142/143)執行如下命令即可加入 K8S 集群

kubeadm join 192.168.41.141:6443 --token sec4pk.nnihf0tismgn6kax --discovery-token-ca-cert-hash sha256:a8a0adf8b5fd9adb6ac8a2977456bd1671055146ed5711eaab5280d6541986fd 

默認token有效期為24小時,當過期之后,該token就不可用了。這時就需要重新創建token,可以直接使用命令快捷生成:

kubeadm token create --print-join-command

部署容器網絡(CNI)

部署網絡 Calico 是一個純三層的數據中心網絡方案,是目前 Kubernetes 主流的網絡方案,執行以下的命令下載YAML:

wget https://docs.projectcalico.org/v3.19/manifests/calico.yaml --no-check-certificate

下載完后還需要修改里面定義 Pod 網絡(CALICO_IPV4POOL_CIDR),與之前
kubeadm init 的 --pod-network-cidr 指定的一樣

vim calico.yaml

在這里插入圖片描述

默認 calico.yaml 中所使用的鏡像都來源于 docker.io 國外鏡像源,這里我們可以刪除 docker.io 前綴以使鏡像從國內鏡像加速站點下載

cat calico.yaml |grep 'image:'
sed -i 's#docker.io/##g' calico.yaml

在這里插入圖片描述

修改完后文件后,部署:

#部署
kubectl apply -f calico.yaml
#查看狀態,執行完上一條命令需要等一會才全部 running
kubectl get pods -n kube-system

等Calico Pod都Running,節點也會準備就緒

部署 Dashboard

Dashboard 是官方提供的一個 Web UI,可用于基本管理 K8s 資源,執行如下命令下載 yaml 文件。默認 Dashboard 只能集群內部訪問,修改 Service 為NodePort 類型,暴露到外部:

wget https://github.com/kubernetes/dashboard/releases/tag/v2.4.0/aio/deploy/recommended.yaml

修改如下,nodePort 的端口范圍為 30000-32767,這里設置為 31000,并且添加 type:NodePort

vim recommended.yaml

在這里插入圖片描述

執行如下命令應用

kubectl apply -f recommended.yaml

在 master 節點創建 service account 并綁定默認 cluster-admin 管理員集群角色,執行如下的命令

# 創建用戶
kubectl create serviceaccount dashboard-admin -n kube-system
# 用戶授權
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin -
-serviceaccount=kube-system:dashboard-admin
# 獲取用戶 Token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret |
awk '/dashboard-admin/{print $1}')

在這里插入圖片描述

然后我們獲得如下的token,然后使用輸出的 token 登錄 Dashboard 就好了

eyJhbGciOiJSUzI1NiIsImtpZCI6IjNpbzFJbTg4UjlpcjFBdS1rb1J3NzFtY3BETlhtVkQ3S0hXZWwwU0MwN1UifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tYzdzcHAiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZjAyMTE1OWMtZjcyMC00YTZlLWFiY2MtYzIzYWRhZjBiZjk5Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.aD_ZtS0domXxtWz-2BaGmZebJMqoNvWqHgJ4K7kQ9eir5JvIqTsrxM14dNrUrEFRZC2hw6Gn_xz7Nezy81XPU64HHcbGiNvNU8K7OwvTWwTOpDBRPho1CaxJsKBrlQwoNf1pzoShqO-JdL4kVfJUmKthjUqv8QduwVzEkCWeTXgcHOoPnsOaJSXJzwanAC4e5pIovcjMGQJU4W87T8uVW4bdO4w48c-101-mMYHMouKVRxF8OOTuGHFXUDpYCKAOvfA73gtwoyi_4wiSqS7NSZZTGwFfppUYDomjoA3FUFubZ2xLoc8fN2GoFzzTcylxFHTCfupJM2nUVs9vxQbJw

然后我們瀏覽器訪問 URL:https://master:31000或者 https://node:31000 均可

在這里插入圖片描述

輸入獲得的token,就可以完成登陸了

在這里插入圖片描述

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

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

相關文章

Python讀取Word統計詞頻輸出到Excel

1.安裝依賴的包 "# 讀取docx\n", "!pip install python-docx\n", "!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx\n", "# 中英文分詞\n", "!pip install jieba\n", "!pi…

postman測試后端增刪改查

目錄 一、本文介紹 二、準備工作 &#xff08;一&#xff09;新建測試 &#xff08;二&#xff09;默認url路徑查看方法 三、增刪改查 &#xff08;一&#xff09;查詢全部 &#xff08;二&#xff09;增加數據 &#xff08;三&#xff09;刪除數據 &#xff08;四&…

nginx反向代理流程

一、nginx反向代理流程 反向代理&#xff1a;使用代理服務器來接受internet上的連接請求&#xff0c;然后將請求轉發給內部網絡中的上游服務器&#xff0c;并將上游服務器得到的結果返回給請求連接的客戶端&#xff0c;代理服務器對外表現就是一個web服務器。Nginx就經常拿來做…

【內網穿透】如何實現在外web瀏覽器遠程訪問jupyter notebook服務器

文章目錄 前言1. Python環境安裝2. Jupyter 安裝3. 啟動Jupyter Notebook4. 遠程訪問4.1 安裝配置cpolar內網穿透4.2 創建隧道映射本地端口 5. 固定公網地址 前言 Jupyter Notebook&#xff0c;它是一個交互式的數據科學和計算環境&#xff0c;支持多種編程語言&#xff0c;如…

信也科技一面涼經

1.在項目經歷里挑一個詳細介紹一下 項目的應用場景 2.項目里用到多線程是怎么用的&#xff1f;回答&#xff1a;線程池 用通過 ThreadPoolExecutor 構造函數的方式創建的線程池 3.線程池有哪些重要參數&#xff1f;回答&#xff1a;核心線程數、最大線程數、阻塞隊列類型、…

【愛書不愛輸的程序猿】公網訪問本地搭建的WEB服務器之詳細教程

歡迎來到愛書不愛輸的程序猿的博客, 本博客致力于知識分享&#xff0c;與更多的人進行學習交流 本地電腦搭建Web服務器并用cpolar發布至公網訪問 前言1. 首先將PHPStudy、WordPress、cpolar下載到電腦2. 安裝PHPStudy3. 安裝cpolar&#xff0c;進入Web-UI界面4.安裝wordpress5.…

KU Leuven TU Berlin 推出“RobBERT”,一款荷蘭索塔 BERT

荷蘭語是大約24萬人的第一語言&#xff0c;也是近5萬人的第二語言&#xff0c;是繼英語和德語之后第三大日耳曼語言。來自比利時魯汶大學和柏林工業大學的一組研究人員最近推出了基于荷蘭RoBERTa的語言模型RobBERT。 谷歌的BERT&#xff08;來自Transformers的B idirectional …

C語言 常用工具型API --------system()

函數名&#xff1a; system&#xff08;&#xff09; 用 法&#xff1a; int system(char *command); 原理&#xff1a; 創建一個子進程去加載一個新程序執行&#xff0c;而Linux命令基本都是一個單獨的進程實現的&#xff0c;所以你所掌握的Linux命令越多&#xff0c;該函數…

AUTOSAR規范與ECU軟件開發(實踐篇)4.2 基于Matlab/Simulink的軟件組件開發

目錄 前言 1 、Matlab/Simulink與AUTOSAR基本概念的對應關系 2 、軟件組件內部行為建模方法

由淺入深學習Tapable

文章目錄 由淺入深學習TapableTapable是什么Tapable的Hook分類同步和異步的 使用Sync*同步類型鉤子基本使用bailLoopWaterfall Async*異步類型鉤子ParallelSeries 由淺入深學習Tapable webpack有兩個非常重要的類&#xff1a;Compiler和Compilation。他們通過注入插件的方式&a…

CentOS系統環境搭建(一)——Centos7更新

Centos7更新 更新 yum&#xff08;包括centos內核&#xff09; yum update執行后&#xff0c;系統將更新到centos 7.9。 從這一篇文章開始開始&#xff0c;我將開始在centos系統環境搭建&#x1f517;https://blog.csdn.net/weixin_43982359/category_12411496.html中開始對C…

【數據分析入門】Numpy進階

目錄 一、數據重塑1.1 透視1.2 透視表1.3 堆棧/反堆棧1.3 融合 二、迭代三、高級索引3.1 基礎選擇3.2 通過isin選擇3.3 通過Where選擇3.4 通過Query選擇3.5 設置/取消索引3.6 重置索引3.6.1 前向填充3.6.2 后向填充 3.7 多重索引 四、重復數據五、數據分組5.1 聚合5.2 轉換 六、…

回溯算法詳解

目錄 回溯算法詳解 回溯VS遞歸 回溯算法的實現過程 n個結點構造多本節要討論的是當給定 n&#xff08;n>0&#xff09;個結點時&#xff0c;可以構建多少種形態不同的樹。 回溯算法詳解 回溯算法&#xff0c;又稱為“試探法”。解決問題時&#xff0c;每進行一步&#…

主成分分析Python代碼

對于主成分分析詳細的介紹&#xff1a;主成分分析&#xff08;PCA&#xff09;原理詳解https://blog.csdn.net/zhongkelee/article/details/44064401 import numpy as np import pandas as pd標準PCA算法 def standeredPCA(data,N): #data:…

【golang】鏈表(List)

List實現了一個雙向鏈表&#xff0c;而Element則代表了鏈表中元素的結構。 可以把自己生成的Element類型值傳給鏈表嗎&#xff1f; 首先來看List的四種方法。 MoveBefore方法和MoveAfter方法&#xff0c;它們分別用于把給定的元素移動到另一個元素的前面和后面。 MoveToFro…

十種排序算法(附動圖)

排序算法 一、基本介紹 ? 排序算法比較基礎&#xff0c;但是設計到很多計算機科學的想法&#xff0c;如下&#xff1a; ? 1、比較和非比較的策略 ? 2、迭代和遞歸的實現 ? 3、分而治之思想 ? 4、最佳、最差、平均情況時間復雜度分析 ? 5、隨機算法 二、排序算法的分類 …

RabbitMq-1基礎概念

RabbitMq-----分布式中的一種通信手段 1. MQ的基本概念&#xff08;message queue,消息隊列&#xff09; mq:消息隊列&#xff0c;存儲消息的中間件 分布式系統通信的兩種方式&#xff1a;直接遠程調用&#xff0c;借助第三方完成間接通信 消息的發送方是生產者&#xff0c…

面試熱題(二叉樹的鋸齒形層次遍歷)

給你二叉樹的根節點 root &#xff0c;返回其節點值的 鋸齒形層序遍歷 。&#xff08;即先從左往右&#xff0c;再從右往左進行下一層遍歷&#xff0c;以此類推&#xff0c;層與層之間交替進行&#xff09; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&#xff1a;[[3…

MySQL數據庫-字符串函數詳解

前言 MySQL數據庫提供了多種不同類型的函數&#xff0c;用于處理字符串、日期、數值等數據類型&#xff0c;以及實現條件、聚合等操作&#xff0c;下面我們主要介紹字符串函數 CONCAT() 函數 CONCAT() 可用于將多個字符串連接在一起。 示例&#xff1a; SELECT CONCAT(Hell…

C++ STL stack queue

目錄 一.stack 介紹 二.stack 使用 三.stack 模擬實現 普通版本&#xff1a; 適配器版本&#xff1a; 四.queue的介紹 五. queue使用 六.queue模擬實現 七.deque介紹 1.容器適配器 2.deque的簡單介紹 3.deque的缺陷 4.為什么選擇deque作為stack和queue的底層默認容…