(三)从零开始搭建k8s集群—— k8s集群安装

20 篇文章 41 订阅
17 篇文章 0 订阅

前言

在开始今天的k8s集群安装之前,再次提醒各位读者保存一下当前的镜像,方便出现不必要的问题可随时回退。该篇将实现一个最简版的k8s集群,并通过一个小demo来验证集群安装的成功与否。另外,本文的命令操作如果没有特殊说明,每台机器都要执行,如果某台机器需要单独执行的命令,本文会特殊说明。另外将本文的参考博客也列出如下,感谢前辈们的无私付出,读者也可自行参考。

kubeadm部署kubernetes v1.16.3集群_willblog-CSDN博客

从零开始搭建K8S集群(二)-- 搭建K8S集群_Mr.zhao-CSDN博客_k8s集群搭建

安装

  • 添加kubernetes源,这里配置为阿里云的镜像源

#配置kubernetes源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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

  • 安装kubernetes组件

#安装 kubelet 、kubeadm、 kubectl

yum install -y kubelet kubeadm kubectl

  • 启动kubelet

#启动kubelet

 systemctl enable kubelet && systemctl start kubelet

  • 部署master节点,此步骤只在master节点执行

#master节点安装,说明:pod-network-cidr(pod节点网络初始化);kubernetes-version(安装的k8s版本);apiserver-advertise-address(主节点的 IP 地址);image-repository(k8s初始化的镜像,这里配置为阿里云的镜像,否则会去google的库拉取镜像,由于国内不能访问其官网镜像,如果不配置 ,这里会报拉取镜像出错的问题。网上还提供了另外一种解决方案,通过github和dockerhub配合使用,拉取镜像,大家也可以自行尝试)。此过程因为要拉取镜像,所以过程可能会很慢,请大家耐心等待。

 kubeadm init --pod-network-cidr=192.168.0.0/16 --kubernetes-version=v1.18.2 --apiserver-advertise-address=192.168.23.130 --image-repository=registry.aliyuncs.com/google_containers

#很不幸的是这里面报了一个错,我们的master并没有初始化成功,

#然而意外之喜的是,这里k8s初始化的镜像已经帮我们拉下来了,哈哈,有得也有失吗

docker images

#我猜想可能是拉取镜像的时间太长,导致我们的k8s主节点没有初始化成功,这里我们重置一下k8s的kubeadm,然后再次执行上面的命令

kubeadm reset

 #再次执行上面的命令

kubeadm init --pod-network-cidr=192.168.0.0/16 --kubernetes-version=v1.18.2 --apiserver-advertise-address=192.168.23.130 --image-repository=registry.aliyuncs.com/google_containers

#居然成功了,有木有。这里我们将以下命令代码记录下来,方便后面其它节点执行该命令加入到我们的集群中

kubeadm join 192.168.23.130:6443 --token 6rc83u.nh3m19pypf024dw7     --discovery-token-ca-cert-hash sha256:cf73c46a33f6abae1bfc9eb6ef29050ddaadc3c7be880ec8cbe26fb4b2c42aaa

 #按照提示我们还需要执行三个命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

  •  安装calico网络插件,使得pod之间可以通信,也可以使用flannel网络插件,但是据说calico的功能更加强大,flannel的功能它都可以实现,那我们就来安装一下calico吧

#安装calico网络插件

kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml

  • 查看我们的主节点是否已经在运行

#查看节点

kubectl get nodes

 #查看pod节点,这里如果status如果没有显示为running状态,可能还在启动容器组件,请耐心等待一会,这里我们pod的网络也安装好了

kubectl -n kube-system get pods

  • 到这里,我们的集群基本上算是安装完成了,最后将我们的work01和work02节点加入到我们的集群中去,分别在我们的work01和work02节点执行以下操作

#work01执行我们上面保存的命令,work02同work01,这里不再赘述。

kubeadm join 192.168.23.130:6443 --token 6rc83u.nh3m19pypf024dw7     --discovery-token-ca-cert-hash sha256:cf73c46a33f6abae1bfc9eb6ef29050ddaadc3c7be880ec8cbe26fb4b2c42aaa

 

这里如果没有记录此命令在初始化完主节点的时候,也可以在主节点执行以下命令获取

 kubeadm token create --print-join-command

  • 查看集群状态

#查看node节点,我们的从节点已经加入到集群中

kubectl get nodes

 

#查看pod状态

 kubectl -n kube-system get pods -o wide

  • 到这里我们的集群就已经搭建完毕了,status都已经running了,这里我们在pod上安装一个应用,验证一下我们的集群

#部署一个 Nginx Deployment,包含6个Pod副本 

cat > nginx.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 6
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
EOF

 

#创建nignx应用

 kubectl apply -f nginx.yaml

#设置服务

kubectl expose deployment nginx-deployment --type=NodePort --name=nginx-service

 

#查看服务

 kubectl get svc

#访问一下我们的nginx,看是否已经部署成功,这里只能访问从节点,主节点只负责pod的创建和调度等,当然也可以把主节点部署pod,我们后面再说。

curl 192.168.23.131:30699

curl 192.168.23.132:30699

#查看一下我们的pod,确实有6个副本

kubectl get pod

  •  将master节点发布为node

#查询master节点的taints污点状态

kubectl describe nodes | grep Taints

#master节点发布为node节点,去掉taints污点

kubectl taint node k8s-master node-role.kubernetes.io/master-

#还原操作

kubectl taint node k8s-master node-role.kubernetes.io/master=:NoSchedule

  •  最后我们记录一下如何移除节点

#在主节点执行以下命令,这里以work01为例

kubectl drain k8s-work01 --delete-local-data --force --ignore-daemonsets

kubectl delete node k8s-work01

#在k8s-work01节点上执行以下命令,重置节点

kubeadm reset -f

后续

到这里就又到了和大家说再见的时候了,本次的k8s集群安装也就结束了,虽然言尤未尽。但是总归要结束的,虽然以上大多都是来自网上博客的内容,但也是作者辛苦尝试出来的,遇到了许多的问题,最终得以以一个成功的东西展示给大家,希望对你有一点点帮助都是好的,创作不易,如有错误,恳请批评指出,本人一定虚心接受,加以改正,如果能得到您的一个小小的赞,会更加的开心,哈哈,那么今天就到这里了,我们下期见。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
从零开始搭建一个 Kubernetes(简称K8s集群可以按照以下步骤进行: 1. 选择操作系统:选择适合你的需求的操作系统,比如Ubuntu、CentOS等。 2. 安装Docker:Kubernetes使用Docker容器来运行应用程序,因此需要先安装Docker。可以通过官方文档来安装适合你操作系统版本的Docker。 3. 安装Kubernetes的控制节点(Master):在控制节点上安装Kubernetes的各个组件,包括kube-apiserver、kube-controller-manager、kube-scheduler等。可以通过二进制文件手动安装,或者使用Kubeadm工具来简化安装过程。 4. 配置网络:配置网络使得集群内的各个节点能够相互通信。可以选择使用Flannel、Calico等网络插件来实现网络配置。 5. 添加工作节点(Worker):在工作节点上安装Docker和Kubernetes的各个组件,比如kubelet和kube-proxy。可以使用同样的方式安装Docker和Kubernetes组件。 6. 加入工作节点到集群:在控制节点上使用Kubeadm工具将工作节点加入到集群中。 7. 部署应用程序:通过Kubernetes的资源对象(如Pod、Service、Deployment等)来部署应用程序。可以使用kubectl命令行工具或者YAML文件来定义和创建这些资源对象。 以上是一个大致的搭建Kubernetes集群的步骤,具体的安装和配置过程可能会因为操作系统和版本的不同而有所差异。你可以参考官方文档或者一些教程来获取更详细的指导。同时,搭建Kubernetes集群需要一定的系统管理和网络知识,确保你有足够的了解和准备。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉害哥哥吖

您的支持是我创作下去的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值