编辑
2023-07-29
🚀运维部署
00
请注意,本文编写于 691 天前,最后修改于 225 天前,其中某些信息可能已经过时。

目录

kubeadm部署方式
1. 要求:
2. 准备环境
3. 所有节点安装Docker/kubeadm/kubelet
3.1 安装Docker
3.2 添加阿里云YUM软件源
3.3 安装kubeadm,kubelet和kubectl
3.4 部署kubernets Master
3.5 加入kubernetes Node
3.6 部署CNI网络插件
3.7 测试Kubernetes集群
二进制包部署方式
1.环境搭建(同上)
2.操作系统初始化(同上)
3. 为etcd和apiserver 自签证书
3.1 准备cfssl证书

软件版本还需要修改,仅可查看安装流程

kubeadm部署方式

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具,这个工具能通过两条指令完成一饿kubernetes集群部署:

  • 第一、创建一个Master节点 kubeadm init
  • 第二、将node节点加入到当前集群中 $kubeadm join <Master 节点的Ip和端口>

1. 要求:

  1. 新建3个虚拟机Ip地址,分别代表Master、node1、node2。
  2. 机器配置:Centos7.x x_86_x64。硬件配置:2G或更多Ram,2个CPU或者更多GPu,硬盘30G
  3. 集群中所有机器之间网络互通,可以访问外网。
  4. 要禁止SWAP分区
shell
yum install wget

2. 准备环境

image.png

角色IP
master192.168.1.11
node1192.168.1.12
node2192.168.1.13
shell
# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭selinux sed -i 's/enforcing/disabled/' /etc/selinue/config. # 永久 setenforce 0 # 临时 # 关闭swap swapoff -a # 临时 sed -ri 's/.*swap.*/#$/' /etc/fstab # 永久 # 根据规划设置主机名 hostnamectl set-hostname <hostname> # 在master添加hosts cat >> /etc/hosts <<EOF 192.168.44.141 master 192.168.44.142 node1 192.168.44.143 node2 EOF # 将桥接的IPV4流量传递到iptables的链 cat > /etc/sysctl.d/k8s.confg << EOF net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 EOF sysctl --system # 生效 # 时间同步 yum install ntpdate -y ntpdate time.windows.com

TODO 想想将以上的脚本写为shell,直接在三个服务中运行

3. 所有节点安装Docker/kubeadm/kubelet

Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker

3.1 安装Docker

shell
wget https://mirros.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.e17 systemctl enable docker && systemctl start docker docker --version
shell
cat > /etc/docker/daemon.json << EOF { "registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"] } EOF

3.2 添加阿里云YUM软件源

shell
cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernets] name=Kubernets baseurl=https://mirros.aliyun.com/kubernetes/yum/repos/kubernets-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0

3.3 安装kubeadm,kubelet和kubectl

shell
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 systemctl enable kubelet

3.4 部署kubernets Master

在192.168.31.61(Master)执行:

shell
kubeadm init \ --apiserver-advertises-address=192.168.44.141 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16

由于默认拉取景象地址为k8s.gcr.lo国内无法访问,这里指定阿里云镜像仓库地址。 使用kubectl工具:

shell
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl get nodes

3.5 加入kubernetes Node

在192.168.1.12/13(node)运行。 向集群添加新节点,执行在kubeadm init输出的kubeadm join明亮:

shell
kubeadm join 192.168.1.11:6443 --token esce21.q6hetwm8si29qxwn --discovery-token-ca-cert-hash

默认token有效期24小时,当过期之后,该token就不可用了,这时就需要重新创建token,操作如下:

shell
kubeadm token create --print-join-command

3.6 部署CNI网络插件

shell
wget https://raw.githubusercontent.com/coreos/flannel/masster/Documentation/kube-flannel.yml

默认镜像地址无法访问,sed命令修改为docker hub镜像仓库

shell
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl get pods -n kube-system

3.7 测试Kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --imgae=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get pod.svc

二进制包部署方式

【尚硅谷】Kubernetes(k8s)入门到实战教程丨全新升级完整版

1.环境搭建(同上)

2.操作系统初始化(同上)

3. 为etcd和apiserver 自签证书

3.1 准备cfssl证书

本文作者:Eric

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!