栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Kubernetes 集群部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kubernetes 集群部署

一、Kubernetes 简介

        Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。

Kubernetes有哪些好处:

  • 隐藏资源管理和错误处理,用户仅需要关注应用的开发
  • 服务高可用、高可靠
  • 可将负载运行在由成千上万的机器联合而成的集群中

Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分布式的存储系统

二、部署 Kubernetes集群

 server5是harbor私有仓库,名称为reg.westos.org 。将server6作为master,server7和server8作为node。

1.准备工作

  • 保证harbor私有仓库正常工作
  • server6 7 8 都安装docker,并设置开机自启
  • server6 7 8 做好本地解析
  • server6 7 8 进行免密认证(方便传送文件 )

2.部署docker内核与配置文件

server6中:

vim /etc/sysctl.d/docker.conf

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://reg.westos.org"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

sysctl --system     ##刷新内核

systemctl restart docker

将/etc/sysctl.d/docker.conf和/etc/docker/daemon.json这两文件传给server7 8,并都执行以上操作

3.证书

在server5中,将证书传给server6

在server6中,将证书传给server7 8

4.禁用swap分区

在server6 7 8中都执行

swapoff -a

vim /etc/fstab    ##注释掉/etc/fstab文件中的swap定义

5.安装部署软件kubeadm

在server6 7 8中都执行

vim /etc/yum.repos.d/k8s.repo

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

yum install -y kubelet kubeadm kubectl

systemctl enable --now kubelet.service

6.获取k8s初始化组件

在server6中:

kubeadm config print init-defaults    ##查看默认配置信息

kubeadm config images list --image-repository registry.aliyuncs.com/google_containers    ##列出所需镜像

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers    ##拉取镜像到本地

我们已经把所需镜像拉取到了本地

把这些镜像上传到私有仓库

先批量改名

docker images | grep registry.aliyuncs.com | awk '{print $1":"$2}' | awk -F/ '{print $3}' | awk '{system("docker tag registry.aliyuncs.com/google_containers/"$1" reg.westos.org/k8s/"$1"")}'

在仓库中新建k8s公开项目

登陆

批量上传

docker images | grep reg.westos.org | awk '{system("docker push "$1":"$2"")}'

查看

7.初始化集群

server6中:

 kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s  ##初始化

export KUBEConFIG=/etc/kubernetes/admin.conf   

kubectl get pod -n kube-system    ##查看状态

我们看到有两个pod没有running, 这是没有安装flannel网络组件的缘故

8.安装flannel网络组件

wget https://raw.githubusercontent.com/coreos/flannel/master/documentation/kube-flannel.yml    ##下载yml安装脚本(下载不下来的多下几次)

vim kube-flannel.yml     ##去掉前面的quay.io,让其默认从私有仓库获取

拉取镜像到本地,并改名

docker pull quay.io/coreos/flannel:v0.14.0

docker tag quay.io/coreos/flannel:v0.14.0 reg.westos.org/coreos/flannel:v0.14.0

在仓库中新建coreos公开项目

上传

配置kubectl命令补齐功能

echo "source <(kubectl completion bash)" >> ~/.bashrc

source .bashrc

安装flannel网络组件

kubectl apply -f kube-flannel.yml

此时再次查看状态,都变成running

9.节点扩容

扩容命令初始化的时候会给出,或者手动生成注册命令

kubeadm token create --print-join-command

在server7 8中扩容注册

返回server6查看状态,即可看到加入的node

  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323876.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号