kubeadm 安裝k8s

環(huán)境準備工作
主機名 操作系統(tǒng) IP地址
master Centos 7.2-x86_64 10.199.187.176
node1 Centos 7.2-x86_64 10.199.187.177
node2 Centos 7.2-x86_64 10.199.187.178

關(guān)閉CentOS7自帶的防火墻服務

systemctl disable firewalld
systemctl stop firewalld

修改主機名

//10.199.187.176節(jié)點執(zhí)行
[root@localhost ~]# hostnamectl set-hostname master
//10.199.187.177節(jié)點執(zhí)行
[root@localhost ~]# hostnamectl set-hostname node1
//10.199.187.178節(jié)點執(zhí)行
[root@localhost ~]# hostnamectl set-hostname node2

關(guān)閉SElinux

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

關(guān)閉swap

swapoff -a # 關(guān)閉swap
sed -ri '/[#]*swap/s@^@#@' /etc/fstab # 取消開機掛載swap

添加kubernate yum源

vim /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

安裝docker并設置開機啟動

yum install -y docker
systemctl enable docker

安裝kubelet kubeadm kubectl

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
kubeadm:快速創(chuàng)建集群的工具
kubelet:這是一個需要在所有集群中機器上安裝的組件,它用于執(zhí)行開啟Pod和容器等操作须板。
kubectl:與集群通信的命令行工具碰镜,官方提供的CLI。

開機啟動kubelet

systemctl enable --now kubelet

網(wǎng)絡相關(guān)設置

echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
echo '1' > /proc/sys/net/ipv4/ip_forward

初始化

kubeadm init --image-repository=registry.aliyuncs.com/google_containers --service-cidr=10.199.187.0/24 --pod-network-cidr=192.168.3.0/16 --kubernetes-version=v1.18.3
或者
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address=10.199.187.176 --pod-network-cidr=192.168.3.0/16 --kubernetes-version=v1.18.3
--service-cidr 與其他網(wǎng)絡平面的交互地址
--apiserver-advertise-address 指定與其它節(jié)點通信的接口
--pod-network-cidr 指定pod網(wǎng)絡子網(wǎng)习瑰,使用fannel網(wǎng)絡必須使用這個CIDR

初始化成功后绪颖,顯示
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

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.199.187.176:6443 --token 5qoq4l.d93m61ae11cbefze \
    --discovery-token-ca-cert-hash sha256:e8231966b98f13efd7afbdd6a89e32a3440435c67c56f0f194226edfd435d596 

按照提示執(zhí)行命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

然后給集群安裝一個Pod網(wǎng)絡組件

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/

這里使用Calico

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

執(zhí)行kubectl get nodes命令,等待master的狀態(tài)從NotReady變成Ready

默認情況下甜奄,集群不會在Master節(jié)點上部署Pod柠横。如果你想要允許集群在Master上部署Pod,可以執(zhí)行以下命令课兄,這樣即使只有一臺node節(jié)點牍氛,也可以正常使用集群

kubectl taint nodes --all node-role.kubernetes.io/master-

加入工作節(jié)點

kubeadm init成功后會顯示有關(guān)kubeadm join

kubeadm join 10.199.187.176:6443 --token 5qoq4l.d93m61ae11cbefze \
    --discovery-token-ca-cert-hash sha256:e8231966b98f13efd7afbdd6a89e32a3440435c67c56f0f194226edfd435d596 

如果token過期,可以重新生成

kubeadm token create --print-join-command

查詢集群Pod工作狀態(tài)

[root@master ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-76d4774d89-6kp2x   1/1     Running   3          42h
kube-system   calico-node-bnppg                          1/1     Running   2          42h
kube-system   calico-node-kg5kg                          1/1     Running   1          42h
kube-system   calico-node-qfkh2                          1/1     Running   1          42h
kube-system   coredns-7ff77c879f-b8ckk                   1/1     Running   2          43h
kube-system   coredns-7ff77c879f-lfmdh                   1/1     Running   3          43h
kube-system   etcd-master                                1/1     Running   2          42h
kube-system   kube-apiserver-master                      1/1     Running   2          42h
kube-system   kube-controller-manager-master             1/1     Running   2          42h
kube-system   kube-proxy-6qgcw                           1/1     Running   1          43h
kube-system   kube-proxy-rcdn9                           1/1     Running   3          42h
kube-system   kube-proxy-thkkj                           1/1     Running   1          42h
kube-system   kube-scheduler-master                      1/1     Running   2          42h

查看node狀態(tài)

[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   43h   v1.18.3
node1    Ready    <none>   43h   v1.18.3
node2    Ready    <none>   43h   v1.18.3

查錯過程

如果有Pod Ready是0,可以執(zhí)行kubectl describe pod <pod_name> --namespace=kube-system查看日志
查看node節(jié)點日志 kubectl describe node <node_name>
可以通過journalctl -f -u kubelet 查看kubelet日志
重啟cubelet命令如下

systemctl daemon-reload
systemctl restart kubelet

報錯

The connection to the server 10.199.187.176:6443 was refused - did you specify the right host or port?

我報錯的原因是因為沒關(guān)防火墻的開機重啟烟阐,重啟了master節(jié)點搬俊,防火墻也重啟了。關(guān)閉防火墻就好了蜒茄。

Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level BestEffort QOS cgroup : failed to set supported cgroup subsystems for cgroup [kubepods besteffort]: Failed to set config for supported subsystems : failed to write 4611686018427387904 to hugetlb.1GB.limit_in_bytes: open /sys/fs/cgroup/hugetlb/kubepods.slice/kubepods-besteffort.slice/hugetlb.1GB.limit_in_bytes: no such file or directory
Nov 29 23:32:13 localhost systemd[1]: kubelet.service: main process exited, code=exited, status=255/n/a

就是停掉所有節(jié)點的kubepod相關(guān)的systemd slice
直接執(zhí)行systemctl stop kubepods.slice后唉擂,再重啟kubelet
或者在/var/lib/kubelet/kubeadm-flags.env添加
--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice,如下

[root@master ~]# cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice  --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.2"
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扩淀,一起剝皮案震驚了整個濱河市楔敌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驻谆,老刑警劉巖卵凑,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胜臊,居然都是意外死亡勺卢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門象对,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黑忱,“玉大人,你說我怎么就攤上這事「ι罚” “怎么了菇曲?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抚吠。 經(jīng)常有香客問我常潮,道長,這世上最難降的妖魔是什么楷力? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任喊式,我火速辦了婚禮,結(jié)果婚禮上萧朝,老公的妹妹穿的比我還像新娘岔留。我一直安慰自己,他們只是感情好检柬,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布献联。 她就那樣靜靜地躺著,像睡著了一般厕吉。 火紅的嫁衣襯著肌膚如雪酱固。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天头朱,我揣著相機與錄音运悲,去河邊找鬼。 笑死项钮,一個胖子當著我的面吹牛班眯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烁巫,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼署隘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亚隙?” 一聲冷哼從身側(cè)響起磁餐,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阿弃,沒想到半個月后诊霹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡渣淳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年脾还,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片入愧。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鄙漏,死狀恐怖嗤谚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怔蚌,我是刑警寧澤巩步,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站媚创,受9級特大地震影響渗钉,放射性物質(zhì)發(fā)生泄漏彤恶。R本人自食惡果不足惜钞钙,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望声离。 院中可真熱鬧芒炼,春花似錦、人聲如沸术徊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赠涮。三九已至子寓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間笋除,已是汗流浹背斜友。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垃它,地道東北人鲜屏。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像国拇,于是被迫代替她去往敵國和親洛史。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353