deepin(linux)搭建单节点k8s
本人亲测很多次,无脑跟着流程复制粘贴命令即可!!!
·
注意:k8s1.24版本以上默认使用的是container容器,不使用docker拉取镜像,本次安装k8s的1.27版本
也可安装1.24以上指定版本,根据情况修改指定第7条中container中pause的版本(现使用3.9的,但3.7也支持使用,未调研1.24-1.27的那个版本使用的3.9的,根据k8s版本查找需要镜像自行进行修改即可)
基础环境:
docker version
24.0.0
git version
2.20.1
1.永久关闭交换分区(临时的再次开机,k8s启动不了)
#永久关闭交换分区
sudo vim /etc/fstab
#noauto要求systemd启动是不自动挂载swap, 其他系统直接注释即可,deepin使用noauto
UUID=xxxxxxxxxxxxxxxxx none swap defaults,pri=-2 0 0
#修改后面pri为
UUID=xxxxxxxxxxxxxxxxx none swap defaults,noauto 0 0
#设置完要重启才能生成配置
reboot
2.查看并修改设置主机名
#查看主机名
hostnamectl
#修改主机名为 sumi (可不设置,根据自己喜好)
hostnamectl set-hostname sumi
#编辑/etc/hosts文件
sudo vi /etc/hosts
#在文件末尾添加以下内容,这里只添加主机服务器,若有节点服务器按“IP 主机名”加入
172.17.0.1 sumi
注意,若为本机IP,只要本机IP发生变化k8s就需要重新安装,可以使用docker的172.17.0.1的IP
3.下载工具
#更新源
sudo apt-get update
#下载工具
sudo apt-get install -y apt-transport-https curl
4.下载公钥,配置k8s源
使用管理员身份
su root
#下载阿里云的公钥
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
#阿里云的源(之间配套使用阿里云即可)
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
5.下载 kubectl kubeadm kubelet
#再次更新
sudo apt-get update
#下载
sudo apt-get install kubectl kubeadm kubelet
6.设置阿里云镜像加速
cat <<EOF >/etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
EOF
7.配置container(k8s1.24以上使用containerd容器)
本次安装版本信息为
#root@sumi:/home/sumi# crictl version
Version: 0.1.0
RuntimeName: containerd
RuntimeVersion: 1.6.21
RuntimeApiVersion: v1
#安装
apt-get install containerd.io
#生成containerd默认配置文件(所有节点)
mv /etc/containerd/config.toml /etc/containerd/config.toml.orig
containerd config default > /etc/containerd/config.toml
#修改config.toml文件
sudo vim /etc/containerd/config.toml
修改以下
endpoint加速器
[plugins."io.containerd.tracing.processor.v1.otlp"]
endpoint = "https://docker.mirrors.ustc.edu.cn/" (修改)
insecure = false
protocol = “"
修改sandbox_image
#sandbox_image = "k8s.gcr.io/pause:3.6"
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9" (修改)
修改Systemdcgroup
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
IoUid = 0
NoNewKeyring = false
NoPivotRoot = false
Root = ""
ShimCgroup = ""
SystemdCgroup = true (修改)
修改root和state的路径(看硬盘情况)
required_plugins = []
root = "/home/containerd/root" (可修改可不修改)
state = "/home/containerd/state" (可修改可不修改)
temp = ""
version = 2
#重启containerd
systemctl restart containerd
#设置
sudo crictl config runtime-endpoint unix:///run/containerd/containerd.sock
sudo crictl config image-endpoint unix:///run/containerd/containerd.sock
#查看container是否拉取镜像
sudo crictl image ls
8.初始化
#初始化
sudo kubeadm init --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address=172.17.0.1
#若出错则使用reset重新初始化
kubeadm reset
#根据成功的提示配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
9.修改设置配置网络插件
#修改设置
sudo vim /etc/kubernetes/manifests/kube-controller-manager.yaml
增加参数:
--allocate-node-cidrs=true
--cluster-cidr=10.244.0.0/16
修改后文件内容为:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
component: kube-controller-manager
tier: control-plane
name: kube-controller-manager
namespace: kube-system
spec:
containers:
- command:
- kube-controller-manager
- --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf
- --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf
- --bind-address=127.0.0.1
- --client-ca-file=/etc/kubernetes/pki/ca.crt
- --cluster-name=kubernetes
- --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
- --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
- --controllers=*,bootstrapsigner,tokencleaner
- --kubeconfig=/etc/kubernetes/controller-manager.conf
- --leader-elect=true
- --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
- --root-ca-file=/etc/kubernetes/pki/ca.crt
- --service-account-private-key-file=/etc/kubernetes/pki/sa.key
- --use-service-account-credentials=true
- --allocate-node-cidrs=true
- --cluster-cidr=10.244.0.0/16
#配置网络插件
网址下载网络插件应用
kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
若github无法下载,网上搜索其他资源来源(若可以打开文件内容,可直接复制到自己新建文件下)下载到本地(如本地桌面)
sudo kubectl apply -f /home/sumi/Desktop/kube-flannel.yml
10.去除污点
#查看污点
kubectl describe nodes 主机名 | grep Taints
结果:Taints: node-role.kubernetes.io/control-plane:NoSchedule
#去污点
kubectl taint node 主机名 污点名全称-
如
kubectl taint node sumi node-role.kubernetes.io/control-plane:NoSchedule-
成功如下
#返回:
node/shiye untainted
#再次查看
Taints: <none>
#查看节点运行情况
kubectl get pod -A
更多推荐
已为社区贡献1条内容
所有评论(0)