使用 kubeadm 創(chuàng)建集群幫助文檔
如果您需要以下幾點(diǎn),該工具是很好的選擇:kubeadm
- 一種簡(jiǎn)單的方法,讓你嘗試 Kubernetes,可能是第一次。
- 現(xiàn)有用戶自動(dòng)設(shè)置群集并測(cè)試其應(yīng)用程序的一種方式。
- 其他生態(tài)系統(tǒng)和/或安裝程序工具中的構(gòu)建塊,具有更大的 范圍。
(一)安裝要求
-
一臺(tái)或多臺(tái)機(jī)器,操作系統(tǒng) CentOS7.x-86_x64
-
硬件配置:2GB或更多RAM,2個(gè)CPU或更多,硬盤40GB或更多
可以訪問外網(wǎng),可以遠(yuǎn)程連接,需要拉取鏡像,如果服務(wù)器不能上網(wǎng),需要提前下載鏡像并導(dǎo)入節(jié)點(diǎn) -
在快速部署k8s(1.18)集群,采用前期準(zhǔn)備操作在k8smaster上面完成,在需要分節(jié)點(diǎn)操作后以k8smaster克隆出k8snode1及k8snode2這兩個(gè)節(jié)點(diǎn)。
操作系統(tǒng) | IP | 主機(jī)名 |
---|---|---|
CentOS7.x-86_x64 | 10.0.0.50 | k8s-master |
CentOS7.x-86_x64 | 10.0.0.51 | k8s-node1 |
CentOS7.x-86_x64 | 10.0.0.52 | k8s-node2 |
(二)準(zhǔn)備環(huán)境
創(chuàng)建一個(gè)虛擬機(jī)k8smaster進(jìn)入開啟虛擬機(jī):
關(guān)閉防火墻
# systemctl stop firewalld
# systemctl disable firewalld (關(guān)閉防火墻,并設(shè)置開機(jī)不自啟)
關(guān)閉SELinux(最好設(shè)置永久關(guān)閉)
# selinux sed -i 's/enforcing/disabled/' /etc/selinux/config
臨時(shí)關(guān)閉
# setenforce 0
關(guān)閉swap
臨時(shí)
# swapoff -a
永久
# sed -ri 's/.*swap.*/#&/' /etc/fstab
- 根據(jù)規(guī)劃設(shè)置主機(jī)名:hostnamectl set-hostname (k8smaster)
# hostnamectl set-hostname k8smaster
- 在master中添加hosts
# cat >> /etc/hosts << EOF
10.0.0.50 k8smaster
10.0.0.51 k8snode1
10.0.0.52 k8snode2
EOF
檢測(cè):
通過命令:
# ping k8smaster
# ping k8snode1
# ping k8snode2
來測(cè)試是否設(shè)置好靜態(tài)名稱解析
或者通過指令: 查看cat /etc/hosts 文件里是否有三個(gè)指令
- 將橋接的IPv4流量傳遞到iptables的鏈
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
生效
# sysctl --system
時(shí)間同步
# yum install ntpdate -y
# ntpdate time.windows.com
(三)所有節(jié)點(diǎn)安裝docker/kubeadm/kubelet
1.安裝docker
# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo $ yum -y install docker-ce-18.06.1.ce-3.el7
啟動(dòng)docker
# systemctl enable docker && systemctl start docker
# docker --version (查看插件版本)
Docker version 18.06.1-ce, build e68fc7a
個(gè)人加速器配備,進(jìn)入阿里云(容器鏡像服務(wù) (aliyun.com))鏡像加速器選擇centos復(fù)制加速器地址
# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://x02mrg1w.mirror.aliyuncs.com"]
}
EOF
# systemctl daemon-reload
# systemctl restart docker
2.添加阿里云YUM軟件源
# cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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
3.kubeadm,kubelet和kubectl
# yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
# systemctl enable kubelet
4.克隆k8snode1及k8snode2
完成如上操作后就可以克隆出k8snode1及k8snode2這兩個(gè)節(jié)點(diǎn)了!??!
5.部署kubeadm master
在10.0.0.50(master)執(zhí)行:
# kubeadm init \ --apiserver-advertise-address=10.0.0.50 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16
6.加入kubernets node
在10.0.0.51/52(k8snode1和k8snode2)執(zhí)行,
向集群添加新節(jié)點(diǎn),執(zhí)行在kubeadm init輸出的kubeadm join命令:
# kubeadm join 10.0.0.50:6443 --token esce21.q6hetwm8si29qxwn
報(bào)錯(cuò)?。?!
# echo 1 > /proc/sys/net/ipv4/ip_forward
# kubeadm init
執(zhí)行完這兩個(gè)命令后
檢測(cè):swap 命令(free -t)
防火墻是否關(guān)閉: systemctl status firewalld;
如果沒有關(guān)閉則輸入systemctl stop firewalld;systemctl disable firewalld
輸入getenforce 狀態(tài)為disable(標(biāo)黃)
sysctl --system
如果還是執(zhí)行不成功則使用命令kubeadm reset 清空數(shù)據(jù),再進(jìn)行如上的步驟
默認(rèn)token有效期為24小時(shí),當(dāng)過期之后,該token就不可用了。這時(shí)就需要重新創(chuàng)建token,操作如下:在master節(jié)點(diǎn)操作如下: kubeadm token create --print-join-command
7.部署CNI網(wǎng)絡(luò)插件
Centos無法訪問外網(wǎng)
本質(zhì)錯(cuò)誤是vim /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件中的錯(cuò)誤,網(wǎng)關(guān)的錯(cuò)誤,子網(wǎng)掩碼錯(cuò)誤則會(huì)導(dǎo)致無法ping通內(nèi)網(wǎng)。
# wget
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8smaster NotReady master 117m v1.18.0
# kubeadm token create --print-join-command
# kubectl apply -fhttps://raw.githubusercontent.com/coreos/fl annel/master/Documentation/kube-flannel.yml namespace/kube-flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE 119m
coredns-7ff77c879f-dfl52 0/1 Pending
coredns-7ff77c879f-pmqvz 0/1 Pending 119m
etcd-k8smaster kube-apiserver-k8smaster1/11/1 Runn ing Running120m120m
kube-controller-manager-k8smaster 1/1 Running 120m
kube-proxy-24kdh 1/1 Running Running 72s
kube-proxy-h8p4d 1/1 2m31s
kube-proxy-w6bfp 1/1 Running 119m
kube-scheduler-k8smaster 1/1 Running 120m
# curl -fsSL https://addons.kuboard.cn/kuboard/kuboard-static-
# sh kuboard.sh current ip address is 10.0.0.50 create file /root/kuboard-sa.yaml
# kubectl get pods -n kube-system
NAME coredns-7ff77c879f-dfl521/1 READY STATUS Running RESTARTS AGE121m
coredns-7ff77c879f-pmqvz 1/1 Running 121m
etcd-k8smaster 1/1 Running 121m
kube-apiserver-k8smaster 1/1 Running 0 121m
kube-proxy-24kdh kube-controller-manager-k8smaster1/11/1 Running Running121m2m28s
kube-proxy-h8p4d 1/1 Running Running 3m47s
kube-proxy-w6bfp 1/1 121m
kube-scheduler-k8smaster 1/1 Running 121m
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8smaster Ready master 121m v1.18.0
k8snode1 Ready <none> 4m15s v1.18.0
k8snode2 Ready <none> 2m56s v1.18.0
查看到各項(xiàng)狀態(tài)都是run、ready的模式的狀態(tài)則可以進(jìn)入:http:\10.0.0.50
用戶名: admin
密 碼: Kuboard123
新建一個(gè)集群
8.測(cè)試kubernetes集群
在Kubernetes集群中創(chuàng)建一個(gè)pod,驗(yàn)證是否正常運(yùn)行:
# kubectl create deployment nginx --image=nginx
# kubectl expose deployment nginx --port=80 --type=NodePort //檢測(cè)、驗(yàn)證
# kubectl get pod,svc //創(chuàng)建pod
訪問網(wǎng)址:http:/10.0.0.51:31696 訪問nginx文章來源:http://www.zghlxwxcb.cn/news/detail-861711.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-861711.html
到了這里,關(guān)于【Linux】在centos快速搭建K8S1.18集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!