Kubernetes(K8s)_00_搭建环境

安装

Kubernetes集群的安装

如:安装1个Master节点和3个Node节点的Kubernetes集群

主机名IP系统
master192.168.1.107CentOS 7
node1192.168.1.108CentOS 7
node2192.168.1.110CentOS 7

//以下步骤IP根据实际情况修改

(1)关闭防火墙

systemctl stop firewalld

systemctl disable firewalld
在这里插入图片描述
1)所有节点均需关闭防火墙(一般用于内部网络,若外网则需手动设置)


(2)关闭SELinux

vim /etc/sysconfig/selinux
在这里插入图片描述
1)所有节点均需关闭SELinux(Kubernetes不支持SELinux

2)此设置为重启后生效,立即生效需执行“setenforce 0”


(3)关闭交换分区

vim /etc/fstab
在这里插入图片描述
1)所有节点均需关闭交换分区(Kubernetes为了性能,不允许使用交换分区)

2)此设置为重启后生效,立即生效需执行“swapoff -a”


(4)Master节点和Node节点配置域名解析

vim /etc/hosts
在这里插入图片描述


(5)添加Kubernetes的YUM源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

1)默认为国外的YUM源,可使用阿里云的加快安装;


(6)安装容器引擎docker

1)下载安装所需安装包:yum install -y yum-utils device-mapper-persistent-data lvm2

2)指定镜像仓库:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3)安装docker:yum install -y docker-ce docker-ce-cli containerd.io

4)若Docker后无法拉取镜像,可在/etc/docker/daemon.json文件添加以下内容:

{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]
}

// CentOS8中预安装了podman容器(与docker冲突)
卸载podman命令:yum remove -y podman

//安装containerd.io命令:yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm


(7)Master节点和Node节点配置并启动docker,且设置为开机自启

1)vim /usr/lib/systemd/system/docker.service

在ExecStart后添加“–exec-opt native.cgroupdriver=systemd”

2)systemctl daemon-reload

3)systemctl start docker

4)systemctl enable docker
在这里插入图片描述


(8)安装Kubernetes软件

Master节点:

yum -y install kubeadm kubelet kubectl
在这里插入图片描述

Node节点

yum -y install kubeadm kubelet
在这里插入图片描述
1)kubelet:节点代理

2)kubeadm:部署多节点Kubernetes集群的工具

3)kubectl:和Kubernetes交互的命令行工具


(9)Master节点启动kubelet,并设置为开机自启

systemctl start kubelet

systemctl enable kubelet
在这里插入图片描述
1)仅Master节点启动


(10)Master节点启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项

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

echo "net.bridge.bridge-nf-call-iptables=1" \> /etc/sysctl.d/k8s.conf
在这里插入图片描述
1)若报错,可运行“modprobe br_netfilter”(添加模块)


(11)初始化Master节点

kubeadm init --apiserver-advertise-address=192.168.1.107 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
在这里插入图片描述
1)部署必要组件(etcd、API服务器、Scheduler和Controller Manager等);

2)需记录初始化完成后的令牌,以使其他节点加入


(12)Node节点使用Master节点生成的身份令牌加入

1)Node1节点加入;
在这里插入图片描述
2)Node2节点加入
在这里插入图片描述


(13)设置Master节点的环境变量(使Master节点可调用kubectl命令)

mkdir  -p  $HOME/.kube
cp  -i  /etc/kubernetes/admin.conf $HOME/.kube/config
chown  $(id -u):$(id -g)  $HOME/.kube/config
echo  "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source  ~/.bash_profile

在这里插入图片描述
1)若持续报错,可调用export命令添加至环境变量

export KUBECONFIG=/etc/kubernetes/admin.conf

在这里插入图片描述


(14)Master节点添加网络组件,并调用

1)下载flannel.yml文件:

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
在这里插入图片描述
//若无法连接,则在/etc/hosts添加:“199.232.68.133 raw.githubusercontent.com”

2)添加:kubectl apply -f kube-flannel.yml
在这里插入图片描述
//若无法下载,则可手动编写kube-flannel.yml文件


(15)Master节点验证

1)验证相关组件:kubectl get pod -n kube-system
在这里插入图片描述
2)验证节点:kubectl get node
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐