kubernetes集群布置(一)部署基础环境

文章详细介绍了Kubernetes的核心资源,包括Pod、Deployment、label和服务的概念及其作用,并提供了在CentOS7.5环境下搭建Kubernetes基础环境的步骤,涉及网络配置、无密码登录、关闭防火墙和Selinux、配置阿里云repo源、时间同步以及IPVS的启用。
摘要由CSDN通过智能技术生成

目录

一、kubernetes核心资源解读

1.Pod

2.Deployment

3.label

4.service

二、布置kubernetes基础环境

1.实验环境规划

2.修改机器IP,变成静态IP

3.配置主机名及hosts文件,相互之间通过主机名互相访问

 4.配置主机之间无密码登录

5.关闭交换分区swap,提升性能

6.修改主机内核参数

7.关闭firewalld防火墙及selinux

8. 配置阿里云的repo源

9.配置安装k8s组件需要的阿里云的repo源

10.配置时间同步

11.开启IPVS

12.安装基础软件包


一、kubernetes核心资源解读

1.Pod

Pod是Kubernetes中的最小调度单元,k8s是通过定义一个Pod的资源,然后在Pod里面运行容器,容器需要指定镜像,用来运行具体的服务。Pod代表集群上正在运行的一个进程,一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。也就是说,应该把整个pod看作虚拟机,然后每个容器相当于运行在虚拟机的进程

2.Deployment

Replicaset是Kubernetes中的副本控制器,管理Pod,使pod副本的数量始终维持在预设的个数。Deployment是管理Replicaset和Pod的副本控制器,Deployment可以管理多个Replicaset,是比Replicaset更高级的控制器,也即是说在创建Deployment的时候,会自动创建Replicaset,由Replicaset再创建Pod,Deployment能对Pod扩容、缩容、滚动更新和回滚、维持Pod数量。

3.label

label是标签的意思,k8s中的资源对象大都可以打上标签,如Node、Pod、Service 等,一个资源可以绑定任意多个label,k8s 通过 Label 可实现多维度的资源分组管理,后续可通过 Label Selector 查询和筛选拥有某些 Label 的资源对象,例如创建一个 Pod,给定一个 Label是app=tomcat,那么service可以通过label selector选择拥有app=tomcat的pod,和其相关联,也可通过 app=tomcat 删除拥有该标签的 Pod 资源。

4.service

在kubernetes中,Pod是有生命周期的,如果Pod重启IP很有可能会发生变化。如果我们的服务都是将Pod的IP地址写死,Pod的挂掉或者重启,和刚才重启的pod相关联的其他服务将会找不到它所关联的Pod,为了解决这个问题,在kubernetes中定义了service资源对象,Service 定义了一个服务访问的入口,客户端通过这个入口即可访问服务背后的应用集群实例,service是一组Pod的逻辑集合,这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector实现的。

二、布置kubernetes基础环境

1.实验环境规划

操作系统:centos7.5

配置:4G内存/2vCPU/100G硬盘

网络:NAT

 

K8S集群角色IP主机名安装的组件
控制节点192.168.1.11hd1.com

apiserver controller-manager

scheduler etcd kube-proxy docker calico

工作节点192.168.1.12hd2.com

kubelet kube-proxy

 docker calico coredns

工总节点192.168.1.13hd3.com

kubelet kube-proxy 

docker calico coredns

2.修改机器IP,变成静态IP

在三台主机上的/etc/sysconfig/network-scripts/ifcfg-ens33文件中更改配置

添加以下内容即可

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33        #对应本机网卡设备名
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.11        #对应各个主机ip
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2

修改配置文件后需要重启网络服务才能使配置生效

[root@hd1 ~]# systemctl restart network

3.配置主机名及hosts文件,相互之间通过主机名互相访问

在192.168.1.11上执行如下:

hostnamectl set-hostname hd1.com && bash

在192.168.1.12上执行如下:

hostnamectl set-hostname hd2.com && bash

在192.168.1.13上执行如下:

hostnamectl set-hostname hd3.com && bash

修改每台机器的/etc/hosts文件,增加以下三行

192.168.1.11        hd1.com

192.168.1.12        hd2.com

192.168.1.13        hd3.com

使用ping命令对三台机器测试 

 4.配置主机之间无密码登录

把本地生成的秘钥文件和私钥文件拷贝到远程主机

#三台主机做一样的操作

[root@hd1 ~]# ssh-keygen        #一直回车,不输入密码

[root@hd1 ~]# ssh-copy-id hd1.com

[root@hd1 ~]# ssh-copy-id hd2.com

[root@hd1 ~]# ssh-copy-id hd3.com

5.关闭交换分区swap,提升性能

Swap是交换分区,如果机器内存不够,会使用swap分区,但是swap分区的性能较低,k8s设计的时候为了能提升性能,默认是不允许使用交换分区的。Kubeadm初始化的时候会检测swap是否关闭,如果没关闭,那就初始化失败。如果不想要关闭交换分区,安装k8s的时候可以指定--ignore-preflight-errors=Swap来解决。

[root@hd1 ~]# swapoff -a        #临时关闭

[root@hd2 ~]# swapoff -a

[root@hd3 ~]# swapoff -a

#永久关闭,注释swap挂载即可

[root@hd1 ~]# sed -i '/swap/s/\//\#\//g' /etc/fstab

6.修改主机内核参数

三台机器操作相同

[root@hd1 ~]# modprobe br_netfilter

[root@hd1 ~]# echo "modprobe br_netfilter" >> /etc/profile

[root@hd1 ~]# cat > /etc/sysctl.d/k8s.conf <<EOF

net.bridge.bridge-nf-call-ip6tables = 1        #搭建网络桥接

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

net.ipv4.ip_forward = 1        #添加路由

EOF

[root@hd1~]# sysctl -p /etc/sysctl.d/k8s.conf  # -P从指定的文件加载系统参数

7.关闭firewalld防火墙及selinux

三台主机操作相同

[root@hd1 ~]# systemctl stop firewalld;systemctl disable firewalld

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

#修改selinux配置文件之后,重启机器,selinux配置才能永久生效

[root@hd1 ~]#getenforce

Disabled

#显示Disabled说明selinux已经关闭

8. 配置阿里云的repo源

三台主机操作相同

安装rzsz命令

[root@hd1 ~]# yum install lrzsz -y

安装scp:

[root@hd1 ~]#yum install openssh-clients

#备份基础repo源

[root@hd1 ~]# mkdir /root/repo.bak

[root@hd1 ~]# cd /etc/yum.repos.d/

[root@hd1 ~]# mv * /root/repo.bak/

#下载阿里云的repo源

[root@hd1 ~]#wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo

#配置国内阿里云docker的repo源

[root@hd1 ~]# yum -y install yum-utils

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

#配置epel源

[root@hd1 ~]#yum -y install epel-release

9.配置安装k8s组件需要的阿里云的repo源

[root@hd1 ~]#vim  /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=kubernetes-yum-repos-kubernetes-el7-x86_64

enabled=1

gpgcheck=0

#将hd1.com上Kubernetes的repo源复制给hd2.comhd3.com

[root@hd1 ~]# scp /etc/yum.repos.d/kubernetes.repo hd2.com:/etc/yum.repos.d/

[root@hd1 ~]# scp /etc/yum.repos.d/kubernetes.repo hd3.com:/etc/yum.repos.d/

10.配置时间同步

三台主机操作相同

#安装ntpdate命令

[root@hd1 ~]# yum install ntpdate -y

#跟网络时间做同步

[root@hd1 ~]# ntpdate cn.pool.ntp.org

#把时间同步做成计划任务

[root@hd1 ~]# crontab -e

* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org

#重启crond服务

[root@hd1 ~]#service crond restart

11.开启IPVS

#把ipvs.modules上传到hd1.com机器的/etc/sysconfig/modules/目录下

[root@hd1.com]# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

#把ipvs.modules拷贝到hd2.com的/etc/sysconfig/modules/目录下

[root@hd1.com ~]#scp /etc/sysconfig/modules/ipvs.modules hd2.com:/etc/sysconfig/modules/

#把ipvs.modules拷贝到hd3.com的/etc/sysconfig/modules/目录下

[root@hd1.com ~]# scp /etc/sysconfig/modules/ipvs.modules hd3.com:/etc/sysconfig/modules/

[root@hd2.com]# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

[root@hd3.com]# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs

12.安装基础软件包

三台主机相同操作

[root@hd1 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat   conntrack ntpdate telnet ipvsadm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值