部署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

猜你喜欢

转载自www.cnblogs.com/xuziyu/p/11725976.html