【k8s】单机部署k8s

一、准备操作

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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注