環境配置
內容 |
參數 |
操作系統 |
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