一、准备操作
swapoff -a //关闭swap
setenforce 0 //临时关闭selinux
二、安装
1.安装kubeadm、kubelet、kubectl
添加镜像
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF
#将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes 下载镜像
sudo systemctl enable --now kubelet
//查看是否安装成功
kubeadm version
kubectl version --client
kubelet --version
2. 安装插件
yum -y install socat conntrack-tools
3. 部署docker
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加华为云的docker镜像地址
yum-config-manager --add-repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
更新缓存,只处理新添加的yum源缓存
yum makecache fast
#安装docker,默认安装最新版本
yum -y install docker-ce
#查看安装docker版本
docker --version(或者使用docker version)
systemctl start docker
PS:已安装docker的服务器,这一步骤可省略
4. 修改docker组件为systemd
mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
5. k8s拉取镜像
先查看要拉取的镜像
kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.22.2
k8s.gcr.io/kube-controller-manager:v1.22.2
k8s.gcr.io/kube-scheduler:v1.22.2
k8s.gcr.io/kube-proxy:v1.22.2
k8s.gcr.io/pause:3.5
k8s.gcr.io/etcd:3.5.0-0
k8s.gcr.io/coredns/coredns:v1.8.4
写脚本进行拉取。
vim k8s.sh
#!/bin/bash
images=(
kube-apiserver:v1.22.2
kube-controller-manager:v1.22.2
kube-scheduler:v1.22.2
kube-proxy:v1.22.2
pause:3.5
etcd:3.5.0-0
coredns:v1.8.4
)
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
docker tag k8s.gcr.io/coredns:v1.8.4 k8s.gcr.io/coredns/coredns:v1.8.4
docker rmi k8s.gcr.io/coredns:v1.8.4
给脚本加权限
chmod -R 777 k8s.sh
执行脚本,默默的等待拉取
./k8s.sh
完了看镜像是否拉取成功
docker images
6. 安装启动
1. 修改主机映射(根据自己的ip设置)
vi /etc/hosts
初始化服务(根据自己的ip和网段和版本来设置)
kubeadm init --apiserver-advertise-address=172.17.44.159 --pod-network-cidr=172.17.0.0/16 --kubernetes-version=v1.22.2 |tee kubeadmin-init.log
PS:初始化时,如提示报错信息。
[ERROR CRI]: container runtime is not running: output: E0729
解决办法:
rm -rf /etc/containerd/config.toml
systemctl restart containerd
要使非 root 用户可以运行 kubectl,请运行以下命令, 它们也是 kubeadm init 输出的一部分:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
如果你是root 用户,则可以运行:
export KUBECONFIG=/etc/kubernetes/admin.conf
7. 安装flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
8.验证
kubectl get nodes