20220729版本k8s配置
系统版本:Ubuntu 22.07
Kubernetes版本:v1.24.3
Containerd版本:1.5.9
1. 系统基础配置(Master节点,Node节点都需要操作)
1.1 关闭缓存
--临时关闭
$ sudo swapoff -a
--永久关闭,注销其中swap行保存重启
$ sudo vi /etc/fstab
# swap ······
1.2 网络配置
$ sudo modprobe overlay
$ sudo modprobe br_netfilter
$ sudo sysctl net.bridge.bridge-nf-call-iptables=1
$ sudo sysctl net.ipv4.ip_forward=1
1.3 生效
$ sudo sysctl --system
2. Containerd安装配置(Master节点,Node节点都需要操作)
2.1 安装启动
--安装依赖工具
$ sudo apt-get install -y apt-transport-https ca-certificates curl
--安装containerd
$ sudo apt-get -y install containerd
$ sudo systemctl enable containerd
$ sudo systemctl start containerd
2.2 输出配置(需手动创建空文件)
--输出默认配置文件
$ sudo mkdir /etc/containerd
$ sudo touch /etc/containerd/config.toml
$ sudo containerd config default > /etc/containerd/config.toml
2.3 编辑配置文件
$ sudo vi /etc/containerd/config.toml
1. 修改SystemdCgroup参数为true,默认为false
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
2. 修改sandbox_image参数,其值一定要和 $ kubeadm config images list 命令输出的pause版本和tag保持一致,否则Node节点的Pod一直 CrashLoopBackOff 而且查询 kubectl logs 时也没有任何错误,此处我的版本为阿里云3.7
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"
2.4 生效
$ sudo systemctl restart containerd
3. K8s 安装(Master节点,Node节点都需要操作)
3.1 更换国内源
$ sudo vi /etc/apt/sources.list
--添加如下行阿里云国内源
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
--提示KEY报错时,执行如下命令添加KEY
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add
--更新
$ sudo apt-get update
3.2 安装
$ sudo apt-get install -y kubelet kubeadm kubectl
3.3 配置容器ENDPOINT并生效
$ crictl config runtime-endpoint unix:///run/containerd/containerd.sock
$ crictl config image-endpoint unix:///run/containerd/containerd.sock
$ sudo systemctl restart containerd
4. K8s 初始化集群安装(Master节点操作)
4.1 初始化集群,--pod-network-cidr为后续flannel网络组件网络配置,--image-repository指定使用国内源
$ sudo kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--image-repository registry.aliyuncs.com/google_containers
4.2 等待上述命令完成,看到如下输出即为成功,如果输出异常,查找原因处理后执行$ sudo kubeadm reset
重置后,重复上述命令初始化即可
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 10.0.XXX.XXX:6443 --token ejhtey.ju5x1ipnpym2vcoj \
--discovery-token-ca-cert-hash sha256:16b86d5b800599ae4acb570106ebceb265b8XXXXXXXXXXXXXXXXXXXXXXXX
4.3 安装flannel网络组件,如果执行失败,手动下载后,上传到目标服务器,改为本地文件执行即可。$ kubectl apply -f kube-flannel.yml
$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
5. K8s Node节点加入(Node节点操作)
5.1 执行4.2输出JOIN命令,等待提示完成即可
$ sudo kubeadm join 10.0.XXX.XXX:6443 --token ejhtey.ju5x1ipnpym2vcoj \
--discovery-token-ca-cert-hash sha256:16b86d5b800599ae4acb570106ebceb265b8XXXXXXXXXXXXXXXXXXXXXXXX
6. 常用命令
$ sudo crictl images
#查询 images 列表
$ kubectl get pod --all-namespaces -o wide
#查询所有POD
$ kubectl get nodes
#查询node节点状态
$ kubectl describe pod -n kube-system kube-proxy-jzgwn
#查询指定POD描述信息
$ kubectl logs -n kube-system kube-proxy-p2n4h
#查询指定POD详细日志
$ export KUBECONFIG=/etc/kubernetes/admin.conf
#如果是ROOT用户,加载配置,kubectl命令执行提示环境异常的时候执行
$ kubeadm token create --print-join-command --ttl=0
#重新生成集群加入Token
$ ctr -n k8s.io i tag registry.aliyuncs.com/google_containers/pause:3.7 k8s.gcr.io/pause:3.7
#containerd标签命名,类似 docker tag 效果
网友评论