当前位置: 首页 > news >正文

空间ip地址访问网站pc网站优势

空间ip地址访问网站,pc网站优势,郑州seo代理公司,嵌入式项目外包平台第四阶段 时 间:2023年8月9日 参加人:全班人员 内 容: Kubernetes集群部署上篇 目录 一、Kubernetes部署方式 (一)minikube (二)二进制包 (三)Kubeadm Kubea…

第四阶段

时  间:2023年8月9日

参加人:全班人员

内  容:

Kubernetes集群部署上篇

目录

一、Kubernetes部署方式

(一)minikube

(二)二进制包

(三)Kubeadm

Kubeadm 的简单快捷的部署可以应用到如下三方面:

二、基于kubeadm部署K8S集群

(一)环境准备

1、主机初始化配置

2、配置主机名并绑定hosts,不同主机名称不同

3、主机配置初始化

(二)部署docker环境

1、三台主机上分别部署 Docker 环境,

2、镜像加速器(所有主机配置)

三、部署kubernetes集群

(一)组件介绍

(二)配置阿里云yum源

(三)安装kubelet kubeadm kubectl

(四)配置init-config.yaml

(五)安装master节点

1、拉取所需镜像

2、安装matser节点

3、根据提示操作

(六)安装node节点

(七)节点管理命令


一、Kubernetes部署方式

官方提供Kubernetes部署3种方式

(一)minikube

        Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。

官方文档:Install Tools | Kubernetes

(二)二进制包

        从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。目前企业生产环境中主要使用该方式。

下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#v1113

(三)Kubeadm

        Kubeadm 是谷歌推出的一个专门用于快速部署 kubernetes 集群的工具。在集群部署的过程中,可以通过 kubeadm init 来初始化 master 节点,然后使用 kubeadm join 将其他的Node节点加入到集群中。

        Kubeadm 通过简单配置可以快速将一个最小可用的集群运行起来。它在设计之初关注点是快速安装并将集群运行起来,而不是一步步关于各节点环境的准备工作。同样的,kubernetes 集群在使用过程中的各种插件也不是 kubeadm 关注的重点,比如 kubernetes集群 WEB Dashboard、prometheus 监控集群业务等。kubeadm 应用的目的是作为所有部署的基础,并通过 kubeadm 使得部署 kubernetes 集群更加容易。

Kubeadm 的简单快捷的部署可以应用到如下三方面:

新用户可以从 kubeadm 开始快速搭建 Kubernetes 并了解。

熟悉 Kubernetes 的用户可以使用 kubeadm 快速搭建集群并测试他们的应用。

大型的项目可以将 kubeadm 配合其他的安装工具一起使用,形成一个比较复杂的系统。

官方文档:

Kubeadm | Kubernetes
Installing kubeadm | Kubernetes

二、基于kubeadm部署K8S集群

(一)环境准备

IP地址

主机名

组件

192.168.100.131

k8s-master

kubeadm、kubelet、kubectl、docker-ce

192.168.100.132

k8s-node01

kubeadm、kubelet、kubectl、docker-ce

192.168.100.133

k8s-node02

kubeadm、kubelet、kubectl、docker-ce

注意:所有主机配置推荐CPU:2C+  Memory:2G+

1、主机初始化配置

所有主机配置禁用防火墙和selinux

[root@localhost ~]# setenforce 0

[root@localhost ~]# iptables -F

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# systemctl stop NetworkManager

[root@localhost ~]# systemctl disable NetworkManager

[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

2、配置主机名并绑定hosts,不同主机名称不同

[root@localhost ~]# hostname k8s-master

[root@localhost ~]# bash

[root@k8s-master ~]# cat << EOF >> /etc/hosts192.168.100.131 k8s-master192.168.100.132 k8s-node01192.168.100.133 k8s-node02EOF

[root@k8s-master ~]# scp /etc/hosts 192.168.100.132:/etc/

[root@k8s-master ~]# scp /etc/hosts 192.168.100.133:/etc/

[root@localhost ~]# hostname k8s-node01

[root@localhost ~]# bash

[root@localhost ~]# hostname k8s-node02

[root@localhost ~]# bash

3、主机配置初始化

(所有主机,且配置为2核2G)

[root@k8s-master ~]# yum -y install vim wget net-tools lrzsz

[root@k8s-master ~]# swapoff -a必须为两G的运行否则:

[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab

[root@k8s-node01 ~]# vim /etc/sysctl.conf

[root@k8s-node01 ~]# modprobe br_netfilter

[root@k8s-node01 ~]# sysctl -p

(二)部署docker环境

1、三台主机上分别部署 Docker 环境,

因为 Kubernetes 对容器的编排需要 Docker 的支持。

[root@k8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

        使用 YUM 方式安装 Docker 时,推荐使用阿里的 YUM 源。阿里的官方开源站点地址是:https://developer.aliyun.com/mirror/,可以在站点内找到 Docker 的源地址。

[root@k8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@k8s-master ~]# yum clean all && yum makecache fast

[root@k8s-master ~]# yum -y install docker-ce

[root@k8s-master ~]# systemctl start docker

[root@k8s-master ~]# systemctl enable docker

2、镜像加速器(所有主机配置)

        很多镜像都是在国外的服务器上,由于网络上存在的问题,经常导致无法拉取镜像的错误,所以最好将镜像拉取地址设置成国内的。目前国内很多公有云服务商都提供了镜像加速服务。镜像加速配置如下所示。

https://dockerhub.azk8s.cn //Azure 中国镜像

https://hub-mirror.c.163.com //网易云加速器

[root@k8s-master ~]# vim /etc/docker/daemon.json

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl restart docker

        将镜像加速地址直接写入/etc/docker/daemon.json 文件内,如果文件不存在,可直接新建文件并保存。

        通过该文件扩展名可以看出,daemon.json 的内容必须符合 json 格式,书写时要注意。同时,由于单一镜像服务存在不可用的情况,在配置加速时推荐配置两个或多个加速地址,从而达到冗余、高可用的目的。

三、部署kubernetes集群

(一)组件介绍

三个节点都需要安装下面三个组件

1、kubeadm:安装工具,使所有的组件都会以容器的方式运行

2、kubectl:客户端连接K8S API工具

3、kubelet:运行在node节点,用来启动容器的工具

(二)配置阿里云yum源

推荐使用阿里云的yum源安装:

[root@k8s-master ~]#

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

[root@k8s-master ~]# ls /etc/yum.repos.d/

(三)安装kubelet kubeadm kubectl

所有主机配置

[root@k8s-master ~]# yum -y install kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0

[root@k8s-master ~]# systemctl enable kubelet

        kubelet 刚安装完成后,通过 systemctl start kubelet 方式是无法启动的,需要加入节点或初始化为 master 后才可启动成功。

        如果在命令执行过程中出现索引 gpg 检查失败的情况, 请使用 yum install -y --nogpgcheck kubelet kubeadm kubectl 来安装。

(四)配置init-config.yaml

        Kubeadm 提供了很多配置项,Kubeadm 配置在 Kubernetes 集群中是存储在ConfigMap 中的,也可将这些配置写入配置文件,方便管理复杂的配置项。Kubeadm 配内容是通过 kubeadm config 命令写入配置文件的。

        在master节点安装,master 定于为192.168.100.131,通过如下指令创建默认的init-config.yaml文件:

[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml

其中,kubeadm config 除了用于输出配置项到文件中,还提供了其他一些常用功能,如下所示。

1)kubeadm config view:查看当前集群中的配置值。

2)kubeadm config print join-defaults:输出 kubeadm join 默认参数文件的内容。

3)kubeadm config images list:列出所需的镜像列表。

4)kubeadm config images pull:拉取镜像到本地。

5)kubeadm config upload from-flags:由配置参数生成 ConfigMap。

init-config.yaml配置

[root@k8s-master ~]# cat init-config.yaml

apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.100.131		//master节点IP地址bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockname: k8s-master		//如果使用域名保证可以解析,或直接使用 IP 地址taints:- effect: NoSchedulekey: node-role.kubernetes.io/master
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:type: CoreDNS
etcd:local:dataDir: /var/lib/etcd		//etcd 容器挂载到本地的目录
imageRepository: registry.aliyuncs.com/google_containers	//修改为国内地址
kind: ClusterConfiguration
kubernetesVersion: v1.19.0
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12podSubnet: 10.244.0.0/16 	//新增加 Pod 网段
scheduler: {}

(五)安装master节点

1、拉取所需镜像

[root@k8s-master ~]# kubeadm config images list --config init-config.yaml

[root@k8s-master ~]# kubeadm config images pull --config=init-config.yaml

2、安装matser节点

[root@k8s-master ~]#

echo "1" > /proc/sys/net/ipv4/ip_forward

[root@k8s-master ~]#

kubeadm init --config=init-config.yaml

//初始化安装K8S

        Ps备注:在此一定要注意k8s和docker的版本,在这里,我用的docker版本是19,k8s版本是1.20,如果有其他的情况导致k8s不支持docker版本,会出现下列情况:

3、根据提示操作

        kubectl 默认会在执行的用户家目录下面的.kube 目录下寻找config 文件。这里是将在初始化时[kubeconfig]步骤生成的admin.conf 拷贝到.kube/config

[root@k8s-master ~]# mkdir -p $HOME/.kube

[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

kubeadm init 主要执行了以下操作:

l [init]:指定版本进行初始化操作

l [preflight] :初始化前的检查和下载所需要的Docker镜像文件

l [kubelet-start] :生成kubelet 的配置文件”/var/lib/kubelet/config.yaml”,没有这个文件kubelet无法启动,所以初始化之前的kubelet 实际上启动失败。

l [certificates]:生成Kubernetes 使用的证书,存放在/etc/kubernetes/pki 目录中。

l [kubeconfig] :生成 Kubeconfig 文件,存放在/etc/kubernetes 目录中,组件之间通信需要使用对应文件。

l [control-plane]:使用/etc/kubernetes/manifest 目录下的YAML 文件,安装 Master 组件。

l [etcd]:使用/etc/kubernetes/manifest/etcd.yaml 安装Etcd 服务。

l [wait-control-plane]:等待control-plan 部署的Master 组件启动。

l [apiclient]:检查Master组件服务状态。

l [uploadconfig]:更新配置

l [kubelet]:使用configMap 配置kubelet。

l [patchnode]:更新CNI信息到Node 上,通过注释的方式记录。

l [mark-control-plane]:为当前节点打标签,打了角色Master,和不可调度标签,这样默认就不会使用Master 节点来运行Pod。

l [bootstrap-token]:生成token 记录下来,后边使用kubeadm join 往集群中添加节点时会用到

l [addons]:安装附加组件CoreDNS 和kube-proxy

        Kubeadm 通过初始化安装是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如 k8s-master 节点上查看节点信息都是“Not Ready”状态、Pod 的 CoreDNS无法提供服务等。

(六)安装node节点

根据master安装时的提示信息

两个node节点操作:

[root@k8s-node01 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae

[root@k8s-node02 ~]# kubeadm join 192.168.100.131:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:78bdd0f01660f4e84355b70aa8807cf1d0d6325b0b28502b29c241563e93b4ae

Master操作:

[root@k8s-master ~]# kubectl get nodes

        前面已经提到,在初始化 k8s-master 时并没有网络相关配置,所以无法跟 node 节点通信,因此状态都是“NotReady”。但是通过 kubeadm join 加入的 node 节点已经在k8s-master 上可以看到。

        Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave ,将在明天的csdn上展示!

(七)节点管理命令

以下命令无需执行,仅作为了解

重置master和node配置

[root@k8s-master ~]# kubeadm reset

删除node配置

[root@k8s-master ~]# kubectl delete node k8s-node01

[root@k8s-node01 ~]# docker rm -f $(docker ps -aq)

[root@k8s-node01 ~]# systemctl stop kubelet

[root@k8s-node01 ~]# rm -rf /etc/kubernetes/*

[root@k8s-node01 ~]# rm -rf /var/lib/kubelet/*

http://www.yayakq.cn/news/974710/

相关文章:

  • 上海网站空间续费seo按天计费系统定制
  • 泸州工投建设集团网站wordpress定时失败
  • 竞品网站分析网站制作怎么做网站优化排名
  • 哪家公司做网站专业建一个收费网站
  • 网站建设与开发 教材新丰县建设局网站
  • 网站 建设 开发 协议wordpress 编辑器 插件
  • 昆明网站建设系统广安网站建设服务
  • 如何选择低价网站建设网站icp备案信息如何查询
  • 不会代码可以做网站吗做艺术品展览的网站
  • 手机建网站模板环境设计专业网站
  • 网站产品标签文章标签怎么做怎样建立一个自己的网站
  • 我先做个网站怎么做的湖北省网站备案最快几天
  • 免费开源的个人网站系统网站如何防止重登录
  • 张家口网站建设价格镇江网站建设制作方案
  • 网站提高内容的丰富度创意深圳全网推广公司
  • 中国造价网官网企业网站做优化排名象客
  • c2c网站建设策划书野狼seo团队
  • 做的网站图片不显示wordpress 分类伪静态
  • 如何查看网站名称东莞保安
  • 中国建设银行官方网站登录入口思政网站建设管理自查报告
  • 新手如何学做网站seo 视频
  • 网站收录率做网站怎么销售
  • 郑州关键词网站优化排名如何增加新网站的百度收录
  • 做动漫头像的网站手机网站后台管理
  • 网站设计与网页制作在线昆明营销型网站建设
  • 网站开发和合同视频生成链接
  • 山东网站建设公司电话网络基础知识培训
  • 对网站建设需求网络营销的常见工具有什么
  • 网站开发工程师的职责汕头站
  • 网站直接登陆wordpress插画网站