Kubeadm安裝K8s集群

一、硬件環境

  • 準備3臺Linux服務器,此處用Vmware虛擬機。
主機名CPU內存
k8smaster2核4G
k8snode12核4G
k8snode22核4G

二、系統前置準備

  • 配置三臺主機的hosts文件
cat << EOF > /etc/hosts
192.168.240.130 k8smaster
192.168.240.132 k8snode1
192.168.240.133 k8snode2
EOF
  • 設置主機名
hostnamectl set-hostname k8smaster
hostnamectl set-hostname k8snode1
hostnamectl set-hostname k8snode2
  • 關閉selinux、禁用swap分區
sed -i 's/enforcing/disabled/' /etc/selinux/config 
setenforce 0swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
  • ipv4流量轉發
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
EOF#讓配置文件生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
  • 關閉防火墻
systemctl disable firewalld && systemctl stop firewalld
  • 同步三臺服務器的時間
yum install ntpdate -y
ntpdate time.windows.com

三、環境安裝

Docker 安裝
  • Docker卸載
systemctl stop docker 
yum remove -y docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
  • Docker 安裝
yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce docker-ce-cli containerd.io
systemctl enable docker && systemctl start docker
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker
k8s安裝
  1. 配置k8s安裝鏡像
cat <<EOF > kubernetes.repo
[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
mv kubernetes.repo /etc/yum.repos.d/
  1. 安裝kubeadm 、kubectl、kubelet
yum remove -y kubelet kubeadm kubectl && yum install -y kubelet-1.16.2 kubectl-1.16.2 kubeadm-1.16.2 --disableexcludes=kubernetes
  1. 設置kubelet開機自啟動
systemctl enable kubelet
master節點配置
  1. 創建一個k8s的工作目錄,生成一個kubeadm配置文件
mkdir k8s-install && cd k8s-install
kubeadm config print init-defaults > kubeadm.yaml 
  1. 修改配置文件
#修改生成好的配置文件鏡像與版本
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.169.240.130bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockname: k8smastertaints:- effect: NoSchedulekey: node-role.kubernetes.io/master
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:type: CoreDNS
etcd:local:dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers #修改鏡像源
kind: ClusterConfiguration
kubernetesVersion: v1.16.2 #修改版本
networking:dnsDomain: cluster.localpodSubnet: 10.244.0.0/16 #pod網絡serviceSubnet: 10.96.0.0/12
scheduler: {}
  1. 下載kubeadm所需要的鏡像
kubeadm config images pull --config kubeadm.yaml

在這里插入圖片描述

使用docker images 可查看下載的鏡像信息
在這里插入圖片描述

  1. 使用kubeadm 初始化master節點
kubeadm init --config kubeadm.yaml

提示以下信息則表示初始化成功

在這里插入圖片描述

Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.240.130:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:1877573f37b7fd0bc9d8e38cf8d68f17f51e64a55606f7b657f3cdba79469f16 
  1. 按照提示創建目錄
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看集群節點狀態

kubectl get nodes 

此時只有master節點是NotReady狀態

  1. 將兩臺node節點 加入到master節點中去(kubeadm join 是在master節點上初始化配置時生成的)
kubeadm join 192.168.240.130:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:1877573f37b7fd0bc9d8e38cf8d68f17f51e64a55606f7b657f3cdba79469f16 

再次查看master節點信息

在這里插入圖片描述

  1. 安裝flannel網絡插件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

編輯kube-flannel.yml

改成虛擬機的網卡名稱

在這里插入圖片描述

  1. 下載flannel鏡像
docker pull quay.io/coreos/flannel:v0.11.0-amd64
kubectl create -f kube-flannel.yml
  1. 查看集群節點狀態
kubectl get pods -A

在這里插入圖片描述

  • master節點的組件
  1. api-server: api-server是主節點對外開發api的組件,同時提供restful方式,也可以用kubectl方式。
  2. etcd: 數據存儲組件,api-server會將收到的指令存儲到etcd中。
  3. sched :負責接收指令,然后選舉合適的node節點,通知節點進行容器的啟停、負載均衡等。
  4. cm :主節點控制中心,controller-manager。
  • node節點的組件
  1. kubelet : 用于管理節點中的容器啟停,掛載等等。
  2. kube-proxy : 用于節點間的網絡通信、流量轉發等。
  3. pod : pod是k8s中的最小調度單位,一個pod中可以包含至少1個容器。多個容器組成了一個pod。

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

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

相關文章

Sql奇技淫巧之ROWNUM偽列

ROWNUM偽列 ROWNUM是一個偽列&#xff0c;它是根據每次查詢的結果動態生成的一列遞增編號&#xff0c;表示 Oracle 從表中選擇該行的順序&#xff0c;選擇的第一行ROWNUM為1&#xff0c;第二行ROWNUM為2&#xff0c;以此類推。 注意1&#xff1a; ROWNUM偽列是在WHERE子句之…

torch.profiler

什么是torch.profiler PyTorch Profiler 是一個工具&#xff0c;它允許在訓練和推理期間收集性能指標。Profiler 的上下文管理器 API 可用于更好地了解哪些模型操作最昂貴&#xff0c;檢查它們的輸入形狀和調用堆棧&#xff0c;研究設備內核活動并可視化執行跟蹤。 性能指標&…

騰訊出品Pag動畫框架在Android端的使用-初級

Pag動畫框架作為一個第三方框架&#xff0c;它的優缺點與Lottie是相似&#xff0c;此處不過多贅述。如果你們的項目中打算用了&#xff0c;肯定是經過了一定的調研的。Pag動畫框架分幾個版本&#xff0c;有免費的有收費的。我們目前用的社區免費版&#xff0c;只用來展示Pag動畫…

項目實戰 — 消息隊列(8){網絡通信設計②}

目錄 一、客戶端設計 &#x1f345; 1、設計三個核心類 &#x1f345; 2、完善Connection類 &#x1f384; 讀取請求和響應、創建channel &#x1f384; 添加掃描線程 &#x1f384; 處理不同的響應 &#x1f384; 關閉連接 &#x1f345; 3、完善Channel類 &#x1f384; 編…

廣州華銳互動:VR3D課程在線教育平臺為職業院校提供沉浸式的虛擬現實學習體驗

隨著科技的飛速發展&#xff0c;虛擬現實(VR)和增強現實(AR)技術已經逐漸滲透到我們生活的各個領域。其中&#xff0c;VR3D課程在線教育平臺作為一種新興的教育方式&#xff0c;正在逐漸改變我們的學習方式和體驗。本文將詳細介紹VR3D課程在線教育平臺的應用前景及特點。 VR3D課…

VFP現代物流企業管理系統的設計與實現

摘要: 隨著計算機技術的廣泛應用,在現代流通企業管理中引入計算機管理技術,成為一個值得深入研究的問題。 本文首先概要的論述了數據庫的有關知識與現狀。之后,對當代計算機數據庫技術的現狀,尤其是對關系型數據庫作了系統的描述。在此基礎上,論文重點對數據庫的開發環境 …

【設計模式】工廠模式

工廠模式 工廠模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的設計模式之一。這種類型的設計模式屬于創建型模式&#xff0c;它提供了一種創建對象的最佳方式。 工廠模式提供了一種將對象的實例化過程封裝在工廠類中的方式。通過使用工廠模式&#xff0c;可以…

Mysql整理二 - 常見查詢語句面試題(附原表)

表結構&#xff0c;創建原表的代碼在最后 -- cid課程id; tid老師id; sid學生id; select * from t_mysql_course; select * from t_mysql_score; select * from t_mysql_student; select * from t_mysql_teacher; 1. 查詢" 01 “課程比” 02 "課程成績高的學生的信息…

uniapp軟鍵盤談起遮住輸入框和頭部被頂起的問題解決

推薦&#xff1a; pages.json中配置如下可解決頭部被頂起和表單被遮住的問題。 { "path": "pages/debug/protocol/tagWord", "style": { "app-plus": { "soft…

01.setup,reactive,ref,computed,watch學習---2023新版Vue3基礎入門到實戰項目

1.Vue3組合式 2.創建vue3項目 2.1認識create-vue create-vue是官方新的腳手架工具&#xff0c;vite下一代構建工具 node -v >16 npm init vuelatest 2.2 setup 原始寫法 <script> export default {//執行時機比beforeCreate早//獲取不到this//數據和函數必須ret…

Java實戰:高效提取PDF文件指定坐標的文本內容

前言 臨時接到一個緊急需要處理的事項。業務側一個同事有幾千個PDF文件需要整理&#xff1a;需要從文件中的指定位置獲取對應的編號和地址。 要的急&#xff0c;工作量大。所以就問到技術部有沒有好的解決方案。 問技術的話就只能寫個demo跑下了。 解決辦法 1. 研究下PDF文檔…

案例15 Spring Boot入門案例

1. 選擇Spring Initializr快速構建項目 ? 2. 設置項目信息 ? 3. 選擇依賴 ? 4. 設置項目名稱 ? 5. 項目結構 ? 6. 項目依賴 自動配置了Spring MVC、內置了Tomcat、配置了Logback(日志)、配置了JSON。 ? 7. 創建HelloController類 com.wfit.boot.hello目錄下創建HelloCo…

Less和Sass的原理和用法

一、原理 1.1 Less定義&#xff1a;是一種動態的樣式語言,使CSS變成一種動態的語言特性&#xff0c;如變量、繼承、運算、函數。Less既可以在客戶端上面運行(支持IE6以上版本、Webkit、Firefox),也可以在服務端運行(Node.js) 1.2 SaSS定義&#xff1a;是一種動態樣式語言&#…

開發過程中遇到的問題以及解決方法

鞏固基礎&#xff0c;砥礪前行 。 只有不斷重復&#xff0c;才能做到超越自己。 能堅持把簡單的事情做到極致&#xff0c;也是不容易的。 開發過程中遇到的問題以及解決方法 簡單易用的git命令 git命令&#xff1a; 查看有幾個分支&#xff1a;git branch -a 切換分支&#…

Azure創建第一個虛擬機

首先&#xff0c;登錄到 Azure 門戶 (https://portal.azure.com/)。在 Azure 門戶右上角&#xff0c;點擊“虛擬機”按鈕&#xff0c;并點擊創建&#xff0c;創建Azure虛擬機。 在虛擬機創建頁面中&#xff0c;選擇所需的基本配置&#xff0c;包括虛擬機名稱、操作系統類型和版…

【JVM】JVM 調優的參數都有哪些?

文章目錄 1. 設置堆空間大小2. 虛擬機棧的設置3. 年輕代中Eden區和兩個Survivor區的大小比例4. 年輕代晉升老年代閾值5. 設置垃圾回收收集器 1. 設置堆空間大小 設置堆的初始大小和最大大小&#xff0c;為了防止垃圾收集器在初始大小、最大大小之間收縮堆而產生額外的時間&…

python編程小游戲簡單的,python小游戲編程100例

大家好&#xff0c;給大家分享一下python編程小游戲簡單的&#xff0c;很多人還不知道這一點。下面詳細解釋一下。現在讓我們來看看&#xff01; 不會python就不能用python開發入門級的小游戲&#xff1f; 當然不是&#xff0c;我收集了十個python入門小游戲的源碼和教程&#…

分支語句和循環語句(1)

這篇文章我們詳細的把分支語句和循環語句給大家進行講解。 分支語句&#xff1a; if switch 循環語句&#xff1a; while for do while goto語句&#xff1a; 1.什么是語句&#xff1f; C語句可分為以下五類&#xff1a; 1. 表達式語句 2. 函數調用語句 3. 控制…

qt自己實現方便的線程管理類

看本博客之前&#xff0c;可以先看看我這篇多線程博客&#xff1a;qt多線程使用方式_我是標同學的博客-CSDN博客

ORCA優化器淺析——CDXLOperator Base class for operators in a DXL tree

如上圖所示&#xff0c;CDXLOperator作為Base class for operators in a DXL tree&#xff0c;其子類CDXLLogical、CDXLScalar、CDXLPhysical作為邏輯節點、物理節點和Scalar節點的DXL表示類&#xff0c;因此其包含了這些類的共同部分特性&#xff0c;比如獲取其DXL節點表示的函…