使用kubeadm在Cent 7安裝K8s Cluster

Image for post
Image for post

kubeadm是 Kubernetes 官方推出的部署工具,用來快速安装Kubernetes集群

  • 新用戶可以 kubeadm 開始來試用 Kubernetes。
  • 熟悉 Kubernetes 的用戶可以使用 kubeadm 快速搭建集群並測試他們的應用。

這次使用kubeadm透過初始化 Master 節點來提供給 Node加入
1.準備好VM(這裡使用Centos)
2.安裝Container runtimes(這裡使用Docker )
3.安装 kubeadm
4.加入節點

  1. 我在GCP上準備兩台VM
    jeff-test-k8s-tw-m01 ->master
    jeff-test-k8s-tw-p01 -> Node

2.安裝Container runtimes
照著官方文件操作

兩台都安裝好後可以用docker version檢查版本

Image for post
Image for post

3.安装 kubeadm
照著官方文件操作
先準備repo檔,然後取消SELinux

3-1.master node

由於還沒有設定要連到哪個 k8s 叢集,所以這裡會有 “localhost:8080 was refused …” 的錯誤訊息,可以先忽略它。
https://ithelp.ithome.com.tw/articles/10192748

3–2初始化

Image for post
Image for post

3–3執行初始化配置

使用docker ps && docker images, 會看到一堆 container 已經在跑還有自己載了一些images

Image for post
Image for post

確認node狀態

取得 kube-system pods 狀態,可以看到 coredns 還沒 ready
詳細確認jeff-test-k8s-tw-m01節點資訊

Image for post
Image for post

3–4我們必須自行設定Pod 與 Pod 之間的網路架構,我們需要安裝CNI Plugin
在這裡我是使用Weave Net

coredns 狀態會變成 running,node 的狀態也變Ready

Image for post
Image for post

在master node產生token

4 –1
在另一個node上安裝 kubeadm, kubectl, kubelet
然後使用剛剛產生的token加入節點

Image for post
Image for post

回到master node確認

#在安裝的過程中有遇到CoreDNS Pending,運行不起來的狀況
請跑一次kubeadm reset,再初始化一次

Ref:
https://kubernetes.io/zh/docs/setup/independent/install-kubeadm/
https://rickhw.github.io/2019/03/17/Container/Install-K8s-with-Kubeadm
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
https://kubernetes.io/docs/setup/production-environment/container-runtimes/

Written by

YAML engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store