k8s学习笔记(一)-环境搭建-centos7

1.docker安装

1.0 初始操作

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

# 临时
setenforce 0 
# 永久
sed -i 's/enforcing/disabled/' /etc/selinux/config

关闭swap

# 临时
swapoff -a
# 永久
sed -ri 's/.*swap.*/#&/' /etc/fstab

设置主机名

hostnamectl set-hostname <hostname>

添加hosts

cat >> /etc/hosts << EOF
192.168.10.100 k8s-master
192.168.10.101 k8s-node1
192.168.10.102 k8s-node2
EOF

将桥接的IPv4流量传递到iptables

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 生效
sysctl --system  

时间同步

yum install ntpdate -y
ntpdate time.windows.com

1.1 安装必要的系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 添加docker软件源信息,这里使用的是阿里云

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 更新yum缓存

sudo yum makecache fast

1.4 安装docker-ce

sudo yum -y install docker-ce
# 如果想要安装指定版本的docker, 可以使用以下命令先查询安装包版本列表
yum list docker-ce.x86_64 --showduplicates | sort -r

docker-ce.x86_64            3:24.0.6-1.el7                     docker-ce-stable
docker-ce.x86_64            3:24.0.5-1.el7                     docker-ce-stable
docker-ce.x86_64            3:24.0.4-1.el7                     docker-ce-stable
docker-ce.x86_64            3:24.0.3-1.el7                     docker-ce-stable
docker-ce.x86_64            3:24.0.2-1.el7                     docker-ce-stable
docker-ce.x86_64            3:24.0.1-1.el7                     docker-ce-stable
docker-ce.x86_64            3:24.0.0-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.6-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.5-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.4-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.3-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.2-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.1-1.el7                     docker-ce-stable
docker-ce.x86_64            3:23.0.0-1.el7                     docker-ce-stable
docker-ce.x86_64            3:20.10.9-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.9-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.7-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.24-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.2-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.23-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.22-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.21-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.20-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.19-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.18-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.17-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.16-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.15-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.14-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.13-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.12-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.11-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.10-3.el7                   docker-ce-stable
docker-ce.x86_64            3:20.10.0-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.9-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.7-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.3-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.15-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.14-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.13-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.12-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.11-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.10-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.0-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.9-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.7-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.2-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.1-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.0-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.3.ce-3.el7                   docker-ce-stable
docker-ce.x86_64            18.06.2.ce-3.el7                   docker-ce-stable
docker-ce.x86_64            18.06.1.ce-3.el7                   docker-ce-stable
docker-ce.x86_64            18.06.0.ce-3.el7                   docker-ce-stable
docker-ce.x86_64            18.03.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            18.03.0.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.12.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.12.0.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.09.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.09.0.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.03.3.ce-1.el7                   docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable

# 然后再安装指定版本
sudo yum -y install docker-ce-[VERSION]
# 如我们要安装版本为[18.03.1.ce-1.el7.centos]
sudo yum -y install docker-ce-18.03.1.ce-1.el7.centos
# 如果版本为[3:20.10.9-3.el7]
sudo yum -y install docker-ce-20.10.9-3.el7
# 注意:这里如果使用命令 sudo yum -y install docker-ce.x86_64-3:20.10.9-3.el7 行安装,会报找不到包

1.5 开启Docker服务并设置开机启动

# 启动docker
sudo systemctl start docker
# 设置开机启动
sudo systemctl enable docker

1.6 校验是否安装成功

docker version

Client: Docker Engine - Community
 Version:           24.0.6
 API version:       1.41 (downgraded from 1.43)
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:35:25 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          20.10.9
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.8
  Git commit:       79ea9d3
  Built:            Mon Oct  4 16:06:37 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.24
  GitCommit:        61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
 runc:
  Version:          1.1.9
  GitCommit:        v1.1.9-0-gccaecfc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  

1.7 配置Docker 加速【阿里云镜像仓库配置】

注册阿里云账号,并登陆到阿里云后台,进入 控制台 面板
在这里插入图片描述
在产品与服务里面搜索容器, 找到容器镜像服务
在这里插入图片描述
进入容器镜像服务页面后,点击左侧菜单栏中镜像中心下的镜像加速器菜单获取镜像加速器地址,在操作文档处选择 Docker 所在服务器的操作系统,并按照文档提示完成配置即可
在这里插入图片描述

2. 通过kubeadm配置k8s环境

2.1 安装kubeadm、kubelet、kubectl

添加阿里云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

yum安装kubeadm、kubelet、kubectl

yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6

设置kubelet开机启动

systemctl enable kubelet

配置关闭 Docker 的 cgroups,修改 /etc/docker/daemon.json,加入以下内容
“exec-opts”: [“native.cgroupdriver=systemd”]
在这里插入图片描述
重启 docker

systemctl daemon-reload
systemctl restart docker

2.2 初始化k8s的master节点

在 Master 节点下执行--apiserver-advertise-address=master节点的IP

kubeadm init \
      --apiserver-advertise-address=192.168.10.100 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.23.6 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16

安装成功后,复制如下配置并执行

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

master节点初始化成功后,下方会打印出加入集群的命令,在node节点上运行后可以加入到集群,如:

kubeadm join 192.168.10.100:6443 --token xoooqo.6everuut0ai3s28h \
		--discovery-token-ca-cert-hash sha256:1401dca0ea5e9b4d08e16225504c34bac7556813171e30dd919cf3ed21b8c641

如果初始化的 token 不小心清空了,可以通过如下命令获取或者重新申请
如果 token 已经过期,就重新申请

kubeadm token create

token 没有过期可以通过如下命令获取

kubeadm token list

获取 --discovery-token-ca-cert-hash 值,得到值后需要在前面拼接上 sha256:

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'

加入集群后,可以在master节点通过命令kubectl get nodeskubectl get no(no是nodes的缩写)查看集群中的节点列表

3. 部署 CNI 网络插件

在 master 节点上执行,下载 calico 配置文件,如果超时,可以将连接放到浏览器中打开,复制内容后,在master节点上新建一个calico.yaml文件,将内容粘贴进去

# 下载最新配置文件
curl https://docs.projectcalico.org/manifests/calico.yaml -O
# 下载3.25.0版本的配置文件
curl https://docs.tigera.io/archive/v3.25/manifests/calico.yaml -O

删除镜像 docker.io/ 前缀,避免下载过慢导致失败

sed -i 's#docker.io/##g' calico.yaml

部署calico(这一步有可能会失败,镜像一直拉取不下来,可以先将镜像pull下来,如果pull也超时,可以先将镜像的tar包下载下来,然后将镜像导入进去,这一步每个节点都要操作一遍)

calico-3.25.0下载地址:https://pan.baidu.com/s/1E2LDLM3DJpWr56TkegK-WQ?pwd=sieg 提取码:sieg

kubectl create -f calico.yaml

创建之后可以查看状态: kubectl get no -n kube-system | grep calico
在这里插入图片描述

导入docker镜像,导入之后是没有名字和标签的,需要使用docker tag命令给镜像打上标签,,注意看大小,71.6MB的是kube-controller,198MB的是cni,245MB的是node
在这里插入图片描述

docker load < calico-node_v3.25.0.tar
docker load < calico-cin_v3.25.0.tar
docker load < calico-kube-controllers_v3.25.0.tar
# 打标签
docker tag [ImageID] calico/node:v3.25.0
docker tag [ImageID] calico/cin:v3.25.0
docker tag [ImageID] calico/kube-controllers:v3.25.0

calico配置好了之后,使用kubectl get no命令可以查看到,集群中的所有节点都是Ready
在这里插入图片描述

4. 配置在任意节点上都可以使用kubectl

将 master 节点中 /etc/kubernetes/admin.conf 拷贝到需要运行的服务器的 /etc/kubernetes 目录中

scp /etc/kubernetes/admin.conf root@k8s-node1:/etc/kubernetes

在对应的服务器上配置环境变量

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值