环境配置
内容 |
参数 |
操作系统 |
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