首页 > 系统相关 >Centos7.9部署kubernetes(一主两从)(版本1.17.4)

Centos7.9部署kubernetes(一主两从)(版本1.17.4)

时间:2024-09-24 14:49:16浏览次数:1  
标签:node 1.17 kubernetes etc -- Centos7.9 master root

部署kubernetes

1、环境准备

IP 系统 配置 角色
192.168.8.180 centos7.9 2H4G master
192.168.8.181 centos7.9 2H4G node1
192.168.8.178 centos7.9 2H4G node2

2、在所有节点上关闭swap分区

#临时关闭swap分区
swapoff  -a
sysctl  -w  vm.swappiness=0
#永久关闭swap分区
sed  -ri  '/^[^#]*swap/s@^@#@' /etc/fstab
或手动修改
vi /etc/fstab

3、修改主机名

master
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash
[root@master ~]# 

node1
[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# bash
[root@node1 ~]# 

node2
[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# bash
[root@node2 ~]# 

4、修改hosts文件

master
[root@master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.180 master
192.168.8.181 node1
192.168.8.178 node2

node1
[root@node1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.180 master
192.168.8.181 node1
192.168.8.178 node2

5、时间同步

[root@master ~]# yum -y install ntp ntpdate
[root@master ~]# ntpdate cn.pool.ntp.org

6、禁用iptable和firewalld

# 1 关闭firewalld服务
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
# 2 关闭iptables服务
[root@master ~]# systemctl stop iptables
[root@master ~]# systemctl disable iptables

7、禁用selinux

[root@master ~]#vim /etc/selinux/config
SELINUX=disabled

8、修改linux的内核参数

# 修改linux的内核采纳数,添加网桥过滤和地址转发功能
[root@master ~]# vim /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

#重新加载配置
[root@master ~]# sysctl -p

# 查看网桥过滤模块有没有,没有则加载网桥过滤模块
[root@master ~]# lsmod | grep br_netfilter

# 加载网桥过滤模块
[root@master ~]# modprobe br_netfilter

# 查看网桥过滤模块是否加载成功
[root@master ~]# lsmod | grep br_netfilter
br_netfilter           22256  0 
bridge                151336  1 br_netfilter

9、配置IPVS功能

概述:

​ 在Kubernetes中Service有两种带来模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块

# 1.安装ipset和ipvsadm
[root@master ~]# yum install ipset ipvsadm -y

# 2.添加需要加载的模块写入脚本文件
[root@master ~]# cat <<EOF> /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF


# 3.为脚本添加执行权限
[root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules

# 4.执行脚本文件
[root@master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules

# 5.查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4

10、重启服务器

[root@master ~]# reboot

11、安装docker

# 1、切换镜像源
[root@master ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# 2、查看当前镜像源中支持的docker版本
[root@master ~]# yum list docker-ce --showduplicates

# 3、安装特定版本的docker-ce
# 必须制定--setopt=obsoletes=0,否则yum会自动安装更高版本
[root@master ~]# yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y

# 4、添加一个配置文件
#Docker 在默认情况下使用Vgroup Driver为cgroupfs,而Kubernetes推荐使用systemd来替代cgroupfs
[root@master ~]# mkdir /etc/docker
[root@master ~]# cat <<EOF> /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF

# 查看文件
[root@master ~]# more /etc/docker/daemon.json


# 5、启动dokcer
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl enable docker

12、安装kubernetes组件

1、由于kubernetes的镜像在国外,速度比较慢,这里切换成国内的镜像源
2、编辑/etc/yum.repos.d/kubernetes.repo,添加下面的配置
[root@master ~]# vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgchech=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
			http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

3、安装kubeadm、kubelet和kubectl
[root@master ~]# yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y

4、配置kubelet的cgroup
#编辑/etc/sysconfig/kubelet, 添加下面的配置
[root@master ~]# vim /etc/sysconfig/kubelet
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

5、设置kubelet开机自启
[root@master ~]# systemctl enable kubelet

13、下载集群镜像

# 在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需镜像可以通过下面命令查看
[root@master ~]# kubeadm config images list

# 下载镜像
# 此镜像在kubernetes的仓库中,由于网络原因,无法连接,下面提供了一种替换方案
直接将下面命令复制到命令行即可
images=(
	kube-apiserver:v1.17.4
	kube-controller-manager:v1.17.4
	kube-scheduler:v1.17.4
	kube-proxy:v1.17.4
	pause:3.1
	etcd:3.4.3-0
	coredns:1.6.5
)

for imageName in ${images[@]};do
	docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
	docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
	docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName 
done

14、初始化集群

#将apiserver的ip地址换成自己的master地址,其他的勿改
[root@master ~]# kubeadm init \
--kubernetes-version=v1.17.4 \
	--pod-network-cidr=10.244.0.0/16 \
	--service-cidr=10.96.0.0/12 \
	--apiserver-advertise-address=192.1688.180

初始化完成会生成一个像ID号的东西,我们要复制下来,因为每个人初始化出来的ID号不一样,所以这里不要照着我的复制

#尽量把\去掉,可能会报错
kubeadm join 192.168.8.180:6443 --token tfmrla.xqwpdtp440y2g0ss --discovery-token-ca-cert-hash sha256:451aefd8a672f111840cdd7e57e911cb28b6256b9c8474c139789e04833f1b52 
创建必要文件
# 创建必要文件
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

15、将node节点加入集群

#复制刚刚的ID号,在node节点运行
[root@node1 ~]# kubeadm join 192.168.8.180:6443 --token tfmrla.xqwpdtp440y2g0ss --discovery-token-ca-cert-hash sha256:451aefd8a672f111840cdd7e57e911cb28b6256b9c8474c139789e04833f1b52 

#若出现下面的提示说明node节点加入成功
This node has joined the cluster:

* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

#翻译上面的意思
该节点已加入集群:

* 证书签名请求已发送到 apiserver 并收到响应。
* Kubelet 被告知新的安全连接细节。

在控制平面上运行“kubectl getnodes”以查看该节点加入集群。

16、加入成功后,在master上查看

[root@master ~]# kubectl get nodes
NAME     STATUS     ROLES    AGE   VERSION
master   Ready      master   94m   v1.17.4
node1    Ready      <none>   79m   v1.17.4
node2    NotReady   <none>   15s   v1.17.4
[root@master ~]# 

STATUS ROLES AGE VERSION
节点的状态 节点的角色 节点的运行时间 节点的Kubernetes 版本
Ready--表示这个节点是主节点,负责集群的控制平面。 master--表示这个节点是主节点,负责集群的控制平面。 m=分钟 v1.17.4 表示这些节点运行的是 Kubernetes 版本 1.17.4
NotReady表示节点目前不可用。 --表示这些节点没有特定的角色,即它们是工作节点,主要用于运行应用程序和容器。 s=秒

至此Kubernetes部署完成

标签:node,1.17,kubernetes,etc,--,Centos7.9,master,root
From: https://www.cnblogs.com/xietingfeng321/p/18429109

相关文章

  • 【Kubernetes基础】Helm工具入门与使用
    前言Helm是Kubernetes包管理工具,类似CentOS的yum包管理工具学习Kubernetes,了解如何通过Helm安装跟管理Kubernetes应用很有必要,下面就来介绍Helm的入门使用。一、Helm基本管理1.1检查Helm版本helmversionhelmversion二、配置Helm仓库Helm可以通过添加仓库源来使......
  • Centos7.9 安装 Docker
    由于docker被封,直接使用docker官方的教程安装会被墙,所以使用阿里云的源进行安装参考文档:https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker-on-a-linux-ecs-instance安装Docker运行以下命令,下载docker-ce的yum源。sudowget-O/etc/yum.repos.d/docker-ce.......
  • Kubernetes最新版本部署完整过程(1.31)
    参考官方文档进行部署:Kubernetes一、环境准备本次实验使用的操作系统为:Centosstream91.1节点规划一台兼容的Linux主机。Kubernetes项目为基于Debian和RedHat的Linux发行版以及一些不提供包管理器的发行版提供通用的指令。每台机器2GB或更多的RAM(......
  • 探索 Kubernetes 服务网格:Istio 实战指南
    ......
  • kubernetes集群公共服务 DNS
    1.我们先按照之前的方式新增加一个虚拟机。一、软件安装#yum-yinstallbind二、软件配置2.1主配置文件修改#vim/etc/named.conf#cat-n/etc/named.conf1//2//named.conf3//4//ProvidedbyRedHatbindpackagetoconfiguretheISCB......
  • vsftpd部署(centos7.9)
    说明:–vsftpd的版本:vsftpd-3.0.2-29.el7_9.x86_64–ftp根目录:/var/www–ftp配置文件目录:/etc/vsftpd–ftp虚拟用户权限配置文件目录:/etc/vsftpd/user_conf实现目标:–匿名用户可以登录,但是不能访问虚拟用户的宿主目录,只能访问共享目录–虚拟用户对自己的宿主目录有任何权......
  • Kubernetes-1. 介绍和安装
    1.Kubernetes介绍下载网址:https://github.com/kubernetes/kubernetes/releases1.1Kubernetes的概述容器编排技术:容器编排系统可以对多个docker主机进行统一的管理和调度,协调容器化应用程序的部署、伸缩、发现和管理。主要的容器编排系统如下DockerSwarm:Docker官方提供......
  • Kubernetes集群部署(kubernetes)
    三台主机恢复到docker快照状态;检查驱动器类型为sytemd;设置各个节点的主机名;然后同步会话,修改hosts文件;在k8s运行过程中不建议使用交换分区;关闭交换分区;但是这种方法是临时性的;如何设置永久不启用交换分区;交换分区也是以挂载的方式加入到系统中的;注释掉......
  • 【Kubernetes】常见面试题汇总(二十四)
    目录 71.假设一家公司想要修改它的部署方法,并希望建立一个更具可扩展性和响应性的平台。您如何看待这家公司能够实现这一目标以满足客户需求?72.考虑一家拥有非常分散的系统的跨国公司,期待解决整体代码库问题。您认为公司如何解决他们的问题?特别说明:题目69-113属于【Kube......
  • 【Kubernetes】常见面试题汇总(二十九)
    目录 81.简述你知道的几种CNI网络插件,并详述其工作原理。K8s常用的CNI网络插件(calico&&flannel),简述一下它们的工作原理和区别。特别说明:题目  1-68  属于【Kubernetes】的常规概念题,即“汇总(一)~(二十二)”。题目69-113属于【Kubernetes】的生产应用题。8......