部署kubernetes單機集群(K8S)


 

環境配置

內容

參數

操作系統

centos

機器環境

阿里雲

CPU核心數

4

內存

16G

   

 

 

 

 

 

 首先你要安裝docker,部署看另一篇博客https://www.cnblogs.com/xuziyu/p/11720992.html

完成這篇博客的部署就可以進行下面的部署了!!!

因為處於初級學習階段,所以就先部署單機的,這里需要注意的是,K8S一般都會涉及到梯子,但對於小白來講,梯子是什么鬼都有點困難,所以為了避免這種情況,我們用阿里雲的源,這樣就可以避免梯子這一步了。接下來開始部署

 

  • 確保docker已經啟動

[root@docker001 ~]# systemctl enable docker && systemctl start docker
  • 配置Ipvs模塊,kube-proxy會用到

cat > /etc/sysconfig/modules/ipvs.modules <<EOFmodprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
  •  配置k8s的yum源 (這里用的網址避免了梯子)

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
              http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

或者你可以這樣操作

安裝必要命令

# 在/etc/yum.repos.d 下創建k8s.repos, 並添加如下內容

name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

以上兩種情況2選一即可

  • 安裝kubeadm,kubelet

1.yum update

以上的截圖是升級以后的,如果沒有升級過,需要等待一段時間直到出現Complete!

 

在升級yum時如果出現報錯

Failed to connect to 2404:6800:4012::200e: Network is unreachable

請參考https://blog.csdn.net/qq_28641401/article/details/96305174 解決問題

 

2.yum makecache fast

 

3.yum install -y kubelet kubeadm kubectl

如果執行以上兩部報以下錯誤,那就說明你的2.配置k8s的yum源 (這里用的網址避免了梯子)有問題,基本上就是梯子鬧得,仔細檢查一下

 

  • 拉取鏡像

google 鏡像並不在docker庫中,因此要防止牆的問題,需要找代替鏡像

 

// 查看kubeadm鏡像
$ kubeadm config images list

// 結果
k8s.gcr.io/kube-apiserver:v1.13.3
k8s.gcr.io/kube-controller-manager:v1.13.3
k8s.gcr.io/kube-scheduler:v1.13.3
k8s.gcr.io/kube-proxy:v1.13.3
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.2.24
k8s.gcr.io/coredns:1.2.6

// 執行如下腳本(沒有翻牆的同學只能通過阿里雲鏡像或者其他鏡像)
$ for i in `kubeadm config images list`; do 
imageName=${i#k8s.gcr.io/}
docker pull registry.aliyuncs.com/google_containers/$imageName
docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done;

(本腳本來自於https://www.jianshu.com/p/d27141e18398)
  • 開機啟動 && 啟動服務

$ systemctl enable kubelet && systemctl start kubelet
  • k8s集群初始化

開通必要端口號 防止不必要的問題出現

// 6443
firewall-cmd --zone=public --add-port=6443/tcp --permanent && firewall-cmd --reload
// 10250
firewall-cmd --zone=public --add-port=10250/tcp --permanent && firewall-cmd --reload

如果你是雲主機,執行這一步可能會出現以下報錯

 

 這是因為你的防火牆關了你需要開啟防火牆

通過systemctl status firewalld查看firewalld狀態,發現當前是dead狀態,即防火牆未開啟

通過systemctl start firewalld開啟防火牆,沒有任何提示即開啟成功。

 具體請參考博客https://www.cnblogs.com/rxbook/p/8110143.html

其實這一步對於雲主機來講是多於的,忽略即可
  •  安裝命令

$ kubeadm init
  • 開啟單機模式

[root@docker001 ~]# kubectl taint nodes --all node-role.kubernetes.io/master

 

[root@docker001 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker001 NotReady master 3h33m v1.16.2

 注意:不要慌,這里NotReady 完全正常
安裝網卡插件后,查詢即可變為Ready

解決:

// 這邊有很多選擇,本次使用`weave`
// 配置地址 https://kubernetes.io/docs/concepts/cluster-administration/addons/

$ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

 

安裝網卡插件后大約等待一分鍾再進行查看

 到這里我們的kubernetes基本上就是部署成功了!!!!

 接下來我們將在kubernetes部署mysql和Tomcat

 鏈接:https://i.cnblogs.com/EditPosts.aspx?postid=11728099

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM