k8s集群搭建

個人筆記奏赘,僅供參考,他人按此步驟不一定能順利搭建

1闻坚、配置阿里云docker源易猫,安裝組件,安裝docker-ce(所有節(jié)點)

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce-19.03.14
2攻臀、配置阿里云kubernetes源,安裝kubeadm,kubectl,kubelet(kubeadm,kubelet在work節(jié)點,kubectl在master節(jié)點)

[root@master manifests]# cat /etc/yum.repos.d/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

yum install -y kubelet
yum install -y kubectl
yum install -y kubeadm
3透罢、安裝完成后,我們還需要對docker進(jìn)行配置冠蒋,因為用yum源的方式安裝的kubelet生成的配置文件將參數(shù)--cgroup-driver改成了systemd羽圃,而 docker 的cgroup-driver是cgroupfs,這二者必須一致才行抖剿,我們可以通過docker info命令查看:

[root@master manifests]# docker info |grep Cgroup
Cgroup Driver: systemd
修改

[root@master manifests]# cat /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
4朽寞、關(guān)閉swap

swapoff -a
5、在master節(jié)點提前下載好k8s組件鏡像斩郎,再使用docker tag重命名脑融,因為K8s默認(rèn)是從grc.io下載鏡像的,而我本地?zé)o法訪問
查看需要的鏡像

[root@master ~]# kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.20.2
k8s.gcr.io/kube-controller-manager:v1.20.2
k8s.gcr.io/kube-scheduler:v1.20.2
k8s.gcr.io/kube-proxy:v1.20.2
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0
從dockerhub可以下載的地址下載鏡像

docker pull aiotceo/kube-apiserver:v1.20.2
docker pull aiotceo/kube-controller-manager:v1.20.2
docker pull aiotceo/kube-proxy:v1.20.2
docker pull aiotceo/kube-scheduler:v1.20.2
docker pull aiotceo/pause:3.2
docker pull aiotceo/coredns:1.7.0
docker pull aiotceo/etcd:3.4.13-alpine
docker pull aiotceo/etcd:3.4.13-ubuntu
重命名

1109 docker tag docker.io/aiotceo/kube-apiserver:v1.20.2 k8s.gcr.io/kube-apiserver:v1.20.2
1111 docker tag aiotceo/kube-proxy:v1.20.2 k8s.gcr.io/kube-proxy:v1.20.2
1112 docker tag aiotceo/kube-scheduler:v1.20.2 k8s.gcr.io/kube-scheduler:v1.20.2
1113 docker tag docker.io/aiotceo/pause:3.2 k8s.gcr.io/pause:3.2
1114 docker tag docker.io/aiotceo/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
1115 docker tag docker.io/aiotceo/etcd:3.4.13-ubuntu k8s.gcr.io/etcd:3.4.13-0
6缩宜、集群初始化
kubeadm init --kubernetes-version=v1.20.2 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.1.1.206
初始化完成后你會看到下面這樣的提示:

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 10.1.1.206:6443 --token hr8pxx.x7hnskwkz7dp20tq
--discovery-token-ca-cert-hash sha256:a894653ab32c92d89a4a43f6486bbe7cfbbeee1e601b5b3a99ffdcd68367737b
意思說你可以使用kubeadm join加入本集群肘迎,但是需要安裝網(wǎng)絡(luò)插件

此時使用kubectl get cs查看集群狀態(tài)甥温,會有以下提示:

[root@master manifests]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Unhealthy Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused
controller-manager Unhealthy Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused
etcd-0 Healthy {"health":"true"}
這是因為集群初始化默認(rèn)從官方下載的kube-scheduler和kube-controller-manaer配置文件里面的port端口為0,將--port=0注釋掉妓布,然后重啟Kubelet

...
spec:
containers:

  • command:
    • kube-scheduler
    • --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
    • --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
    • --bind-address=127.0.0.1
    • --kubeconfig=/etc/kubernetes/scheduler.conf
    • --leader-elect=true

- --port=0

image: k8s.gcr.io/kube-scheduler:v1.20.2

...

systemctl restart kubelet
此時再查看cs姻蚓,狀態(tài)都為ready

[root@master manifests]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
7、安裝網(wǎng)絡(luò)插件
下載flannel配置文件,同樣需要提前在worker節(jié)點下載kube-proxy鏡像匣沼,并重命名

wget https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml
注意狰挡,需要在瀏覽器里面直接打開然后復(fù)制內(nèi)容,再創(chuàng)建kube-flannel.yml,否則用kubectl apply -f 這個鏈接會報錯
kubectl apply -f kube-flannel.yml
查看

kubectl -n kube-system get pod
[root@master ~]# kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
etcd-master 1/1 Running 0 71m
kube-apiserver-master 1/1 Running 0 71m
kube-controller-manager-master 1/1 Running 0 71m
kube-flannel-ds-5xsbn 1/1 Running 0 34m
kube-flannel-ds-9dxlm 1/1 Running 0 34m
kube-flannel-ds-xt564 1/1 Running 0 35m
8肛著、工作節(jié)點加入集群
分別在工作節(jié)點使用上面初始化的生成的token和hash值加入集群

kubeadm join 10.1.1.206:6443 --token hr8pxx.x7hnskwkz7dp20tq
--discovery-token-ca-cert-hash sha256:a894653ab32c92d89a4a43f6486bbe7cfbbeee1e601b5b3a99ffdcd68367737b

vim /etc/profile
在底部增加新的環(huán)境變量 export KUBECONFIG=/etc/kubernetes/admin.conf
source /etc/profile

把主節(jié)點文件拷貝到node節(jié)點
scp -r /etc/kubernetes/admin.conf root@200.200.4.151:/etc/kubernetes/admin.conf

給從節(jié)點打標(biāo)簽
kubectl label node k8s-node-151 node-role.kubernetes.io/node=

[root@master ~]# kubectl get csr
NAME AGE SIGNERNAME REQUESTOR CONDITION
csr-c4tqr 78m kubernetes.io/kube-apiserver-client-kubelet system:bootstrap:hr8pxx Approved,Issued
csr-pdsnh 78m kubernetes.io/kube-apiserver-client-kubelet system:bootstrap:hr8pxx Approved,Issued
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 86m v1.20.2
node01 Ready <none> 78m v1.20.2
node02 Ready <none> 78m v1.20.2
9圆兵、創(chuàng)建coredns
提前將鏡像下載好,并重命名

docker pull aiotceo/coredns:1.7.0
docker tag docker.io/aiotceo/coredns:1.7.0 k8s.gcr.io/coredns:1.7.0
[root@master ~]# kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
coredns-74ff55c5b-ckd4v 1/1 Running 0 90m
coredns-74ff55c5b-pgw2h 1/1 Running 0 90m
PS:安裝過程中如果有出錯枢贿,使用以下命令重置殉农,并且重新初始化,worker節(jié)點也一樣

kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末局荚,一起剝皮案震驚了整個濱河市超凳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌耀态,老刑警劉巖轮傍,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異首装,居然都是意外死亡创夜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門仙逻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驰吓,“玉大人,你說我怎么就攤上這事系奉∶史。” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵缺亮,是天一觀的道長翁涤。 經(jīng)常有香客問我,道長萌踱,這世上最難降的妖魔是什么葵礼? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮并鸵,結(jié)果婚禮上鸳粉,老公的妹妹穿的比我還像新娘。我一直安慰自己能真,他們只是感情好赁严,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布扰柠。 她就那樣靜靜地躺著,像睡著了一般疼约。 火紅的嫁衣襯著肌膚如雪卤档。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天程剥,我揣著相機與錄音劝枣,去河邊找鬼。 笑死织鲸,一個胖子當(dāng)著我的面吹牛舔腾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搂擦,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼稳诚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瀑踢?” 一聲冷哼從身側(cè)響起扳还,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎橱夭,沒想到半個月后氨距,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡棘劣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年俏让,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茬暇。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡首昔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出而钞,到底是詐尸還是另有隱情沙廉,我是刑警寧澤拘荡,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布臼节,位于F島的核電站,受9級特大地震影響珊皿,放射性物質(zhì)發(fā)生泄漏网缝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一蟋定、第九天 我趴在偏房一處隱蔽的房頂上張望粉臊。 院中可真熱鬧,春花似錦驶兜、人聲如沸扼仲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屠凶。三九已至驰后,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矗愧,已是汗流浹背灶芝。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唉韭,地道東北人夜涕。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像属愤,于是被迫代替她去往敵國和親女器。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 時隔大半年住诸,我又回來了晓避,這回帶來的是最近非常火的容器編排工具——kubernetes 先附上docker 官網(wǎng)和k...
    我的橙子很甜閱讀 13,194評論 2 79
  • 操作系統(tǒng):CentOS Linux release 7.7.1908 (Core)docker版本:18.09.1...
    灼灼其華2020閱讀 1,216評論 0 0
  • 這里是k8s節(jié)點篇的搭建,如果需要搭建master吼句,請看 Centos7 K8S Master搭建 一锅必、禁用SEL...
    花田犯de錯閱讀 1,796評論 0 0
  • Kubernetes是目前最火的容器編排工具,其安裝部署有很多種方式惕艳,比如可以通過直接編譯二進(jìn)制文件的方式搞隐,或者通...
    韌心222閱讀 469評論 0 1
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)、焦點远搪、注意力劣纲、語言聯(lián)想、情景聯(lián)想 觀點: 1.統(tǒng)計學(xué)現(xiàn)在叫數(shù)據(jù)分析谁鳍,社會...
    Jenaral閱讀 5,705評論 0 5