怎样搭一个K8s集群

57次阅读
没有评论

共计 2496 个字符,预计需要花费 7 分钟才能阅读完成。

怎样搭一个 K8s 集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在公司一直用的现成的 kubernetes 环境,封装的组件很多,这次尝试自己搭一个轻量级的环境,踩了好多坑。前置要求:  两台主机,可以是云服务器、虚拟机,网络要互通,内存最好大于
 2GB,主机上都要提前安装 Docker。

下面我使用的两台主机。

主机名(centos)
   ip
    角色
   guozhao-50
   192.168.9.50
   Master
   guozhao-51
   192.168.9.51
   slave
   

搭建过程

1、首先在两台主机配置阿里云镜像源地址

#进入 root 用户  sudo su # 配置镜像地址  cat  /etc/yum.repos.d/kubernetes.repo [kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF


2、设置两台主机 SELinux 为 disable,设置 swap 进禁用

 
 
 # 禁用 SELinux
 setenforce 0
 # 禁用 swap,由于启动 swap 会产生性能问题,所以 k8s 默认禁用 swap
 sed -ri  s/.*swap.*/# /  /etc/fstab
 swapoff -a

3、在两台主机分别安装 kubeadm,kubelet,kubectl

yum install -y kubelet kubeadm kubectl


4、两台主机设置开机自启

 
 
 systemctl enable kubelet.service

5、创建集群

# 在准备作为 master 节点的主机运行命令
    kubeadm init \
    --kubernetes-version=v1.19.0 \
     --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
    --pod-network-cidr=10.24.0.0/16 \
    --ignore-preflight-errors=Swap
    
   # --kubernetes-version  指定版本    # --image-repository  由于墙的问题,使用阿里云的镜像地址    # --pod-network-cidr  设置 pod 区间,不设置也可正常工作    # --ignore-preflight-errors 如果预检出现错误可以忽略      


 

此时可以看到各个组件已经启动起来了

 


如果上一步出现错误,需要重置 kubeadm

 
 
 kubeadm reset

6、但是此时 kubectl 命令行不能用,需要将 kubeconfig 复制到指定位置

 
 
 # 切回普通用户
 su centos
 # 拷贝文件
 mkdir ~/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 sudo chown $(id -u):$(id -g) $HOME/.kube/config


此时查看集群信息

 
 
 kubectl get node

可以看到是 NotReady,原因是没有准备 CNI 网络插件

7、安装 CNI 网络插件

 
 
 # 这里安装的 weave
 kubectl apply -f  https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d  \n)

等待安装完成。

稍候再查看 master,状态为 Ready


8、node 节点的加入

 
 
 # 首先在 master 获取 token,在 master 执行
 kubeadm token list
 # 如果 token 已经过期,体现为找不到 token,执行以下命令生成 token
 kubeadm token create # 生成 token

在 master 获取 ca 证书 sha256 编码 hash 值

 
 
 openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2 /dev/null | openssl dgst -sha256 -hex | sed  s/^.* //


在 slave 上执行 kubeadm join

 
 
 sudo su # 进入 root 用户
 kubeadm join  master-ip:port  \ #master-ip:port 为 kubeconfig 文件的 ip 和 port
 --token  token  \ # 上一步的 token
 --discovery-token-ca-cert-hash sha256: hash #上一步的 hash


查看终端

 
 
  注:如果遇到下图错误执行命令
 echo  1   /proc/sys/net/bridge/bridge-nf-call-iptables

9、在 node 节点使用 kubeconfig

将 master 节点的 kubeconfig 文件复制到 slave 节点普通用户的~/.kube 下

10、查看节点情况

 
 
 # 开始可能会出现 node 节点 NotReady,等待镜像拉取完毕会变为 Ready
 kubectl get node

此时一主一从的 k8s 集群已经搭建完毕。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2496字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)