鏡像下載椒功、域名解析心墅、時(shí)間同步請點(diǎn)擊 阿里云開源鏡像站
前言
本文介紹如何在ubuntu上部署k8s集群,大致可以分為如下幾個(gè)步驟
- 修改ubuntu配置
- 安裝docker
- 安裝kubeadm持灰、kubectl以及kubelet
- 配置master節(jié)點(diǎn)
- 將slave節(jié)點(diǎn)加入網(wǎng)絡(luò)
因?yàn)閗8s分為管理節(jié)點(diǎn)和工作節(jié)點(diǎn)盔夜,所以我們將要 在master上部署管理節(jié)點(diǎn),在worker上部署工作節(jié)點(diǎn),master和worker節(jié)點(diǎn)信息如下
主機(jī)名:master喂链,主機(jī)IP:192.168.56.11返十,版本:Ubuntu server 18.04,CPU:2核椭微,內(nèi)存:1G
主機(jī)名:worker洞坑,主機(jī)IP:192.168.56.21,版本:Ubuntu server 18.04蝇率,CPU:2核迟杂,內(nèi)存:1G
一.修改 ubuntu 配置
首先,k8s 要求我們的 ubuntu 進(jìn)行一些符合它要求的配置本慕。很簡單排拷,包括以下兩步:關(guān)閉 Swap 內(nèi)存 以及 配置免密登錄,這一步兩臺(tái)主機(jī)都需要進(jìn)行配置
關(guān)閉 swap 內(nèi)存
執(zhí)行如下命令關(guān)閉swap內(nèi)存
swapoff -a
配置免密登錄
更新中
二.安裝docker
docker 是 k8s 的基礎(chǔ)锅尘,在安裝完成之后也需要修改一些配置來適配 k8s 监氢,所以我們分為 docker 的安裝 與 docker 的配置 兩部分。這一步兩臺(tái)主機(jī)都需要進(jìn)行安裝
docker 的安裝
docker的安裝再簡單不過藤违,執(zhí)行下面命令進(jìn)行安裝
sudo apt install docker.io
等安裝完成之后使用docker --version來驗(yàn)證 docker是否可用
docker --version
docker 的配置
kubernetes默認(rèn)設(shè)置cgroup驅(qū)動(dòng)(cgroupdriver)為"systemd"浪腐,而docker服務(wù)的cgroup驅(qū)動(dòng)默認(rèn)為"cgroupfs",建議將其修改為"systemd"纺弊,與kubernetes保持一致牛欢,可以通過修改docker的/etc/docker/daemon.js文件進(jìn)行設(shè)置骡男,如下結(jié)果
然后通過systemctl restart docker命令重啟docker讓配置生效
三.安裝kubeadm淆游、kubectl以及kubelet
安裝完了 docker 就可以下載 k8s 的三個(gè)主要組件kubelet、kubeadm以及kubectl隔盛。這一步兩臺(tái)主機(jī)都需要進(jìn)行安裝犹菱。先來簡單介紹一下這三者
- kubelet: k8s 的核心服務(wù)
- kubeadm: 這個(gè)是用于快速安裝 k8s 的一個(gè)集成工具,我們在master1和worker1上的 k8s 部署都將使用它來完成吮炕。
- kubectl: k8s 的命令行工具腊脱,部署完成之后后續(xù)的操作都要用它來執(zhí)行
其實(shí)這三個(gè)的下載很簡單,直接用apt-get就好了龙亲,但是因?yàn)槟承┰蛏掳迹鼈兊南螺d地址不存在了。所以我們需要用國內(nèi)的鏡像站來下載鳄炉,也很簡單杜耙,依次執(zhí)行下面五條命令即可
1.使得 apt 支持 ssl 傳輸
apt-get update && apt-get install -y apt-transport-https
2.下載 gpg 密鑰
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
3.添加 k8s 鏡像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
4.更新源列表
apt-get update
5.安裝 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl
直接在/etc/apt/sources.list里添加https://mirrors.aliyun.com/kubernetes/apt/ 是不行的拂盯,因?yàn)檫@個(gè)阿里鏡像站使用的ssl進(jìn)行傳輸?shù)挠优砸劝惭bapt-transport-https并下載鏡像站的密鑰才可以進(jìn)行下載
6.運(yùn)行systemctl start命令啟動(dòng)kubelet服務(wù),并設(shè)置為開機(jī)自動(dòng)啟動(dòng)
root@master01:/app# systemctl start kubelet
root@master01:/app# systemctl enable kubelet
四. 配置master 節(jié)點(diǎn)
1.系統(tǒng)配置預(yù)檢查
在安裝之前需要注意,kubeadm init 命令在執(zhí)行具體的安裝過程之前,會(huì)做一系列的系統(tǒng)預(yù)檢查团驱,以確保主機(jī)環(huán)境符合安裝要求摸吠,如果檢查失敗,就直接終止嚎花,不在進(jìn)行init操作寸痢。因此我們可以通過kubeadm init phase preflight命令執(zhí)行預(yù)檢查操作,確保系統(tǒng)就緒后再進(jìn)行init操作紊选,如果檢查結(jié)果提示我的CPU和內(nèi)存小于最低要求轿腺。
2.準(zhǔn)備鏡像
為了加快kubeadm創(chuàng)建集群的過程,可以預(yù)先將所有鏡像下載完成丛楚∽蹇牵可以通過kubeadm config images list命令查看所需要的鏡像列表
root@master01:/app# kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.23.5
k8s.gcr.io/kube-controller-manager:v1.23.5
k8s.gcr.io/kube-scheduler:v1.23.5
k8s.gcr.io/kube-proxy:v1.23.5
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6
因?yàn)槌跏蓟痬aster節(jié)點(diǎn)時(shí),執(zhí)行命令 kubeadm init 要下載k8s.gcr.io的docker鏡像趣些,但是國內(nèi)連不上k8s.gcr.io仿荆,因此我們可以從阿里云先下載kubeadm需要的鏡像,執(zhí)行如下下載命令
root@master01:/app# kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
下載完成后坏平,通過docker images就可以在本地查看到如下鏡像
然后通過docker tag重命名上面的鏡像拢操,結(jié)果如下
root@master01:/app# docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.5 k8s.gcr.io/kube-apiserver:v1.23.5
3.配置master節(jié)點(diǎn)
準(zhǔn)備工作完成后,就可以運(yùn)行kubeadm init 命令配置master節(jié)點(diǎn)了
root@master01:/app# kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=192.168.0.0/16
配置項(xiàng)說明:
--apiserver-advertise-address k8s 中服務(wù)apiserver的部署地址舶替,如果不填寫令境,默認(rèn)是本機(jī)
--image-repository 拉取的 docker 鏡像源,因?yàn)槌跏蓟臅r(shí)候kubeadm會(huì)去拉 k8s 的很多組件來進(jìn)行部署顾瞪,所以需要指定國內(nèi)鏡像源舔庶,下不然會(huì)拉取不到鏡像
--pod-network-cidr k8s 采用的節(jié)點(diǎn)網(wǎng)絡(luò),因?yàn)槲覀儗⒁褂胒lannel作為 k8s 的網(wǎng)絡(luò)陈醒,所以這里填192.168.0.0/16就好
--kubernetes-version: 這個(gè)是用來指定你要部署的 k8s 版本的惕橙,一般不用填,不過如果初始化過程中出現(xiàn)了因?yàn)榘姹静粚?dǎo)致的安裝錯(cuò)誤的話钉跷,可以用這個(gè)參數(shù)手動(dòng)指定
安裝成功后弥鹦,可看到如下的提示信息
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/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You 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.130.239:6443 --token 6k1i68.aml4dfgyfqwcezkp \
--discovery-token-ca-cert-hash sha256:85eedec31c61177648373d4c7a8a547aa0e0a0816fe91601a99352c84d9545f0
4.配置 kubectl 工具
由于kubeadm默認(rèn)使用CA證書,所以需要為kubectl配置證書才能訪問master.
安裝安裝成功的提示爷辙,非root用戶可以將admin.conf配置文件復(fù)制到HOME目錄的.kube子目錄下彬坏,命令如下:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
如果是root用戶,也可以通過設(shè)置環(huán)境變量KUBECONFIG完成kubectl的配置
export KUBECONFIG=/etc/kubernetes/admin.conf
設(shè)置完成后膝晾,可以使用kubectl命令行工具對kubernetes集群進(jìn)行訪問和操作了
# 查看已加入的節(jié)點(diǎn)
kubectl get nodes
# 查看集群狀態(tài)
kubectl get cs
原文鏈接:https://blog.csdn.net/kity9420/article/details/123674582