k8s集群安装教程
k8s集群安装教程
master、node节点安装
切换到root用户
1
sudo su -
配置host
1
2
3
4
5cat << EOF >> /etc/hosts
192.169.1.210 k8s-master
192.169.1.211 k8s-node1
192.169.1.212 k8s-node2
EOF修改主机名 每台主机都要修改
1
2
3hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2关闭swap分区 每台主机都要关闭
1
2
3
4
5
6
7
8
9
10# 临时关闭
swapoff -a
# 永久关闭(老版本)
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
# 永久关闭(新版本)
只需要编辑 /etc/fstab 文件,不要注释掉 swap 那一行
而是在其后面默认的挂载选项 defaults 后面加上 noauto 变成 defaults,noauto。
cat /etc/fstab
# 查看是否注释安装docker
修改docker Cgroup驱动
1
2
3
4
5cat <<EOF> /etc/docker/daemon.json
{
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF安装k8s
1
apt-get install -y kubelet=1.23.8-00 kubeadm=1.23.8-00 kubectl=1.23.8-00
设置kubectl命令补全
1
apt-get install bash-completion
1
echo 'source /usr/share/bash-completion/bash_completion' >>~/.bashrc
1
echo 'source <(kubectl completion bash)' >>~/.bashrc
初始化k8s-master节点
1
–apiserver-advertise-address 192.168.2.248 填写你自己k8s-master的IP地址
1
2
3
4
5kubeadm init \
--apiserver-advertise-address 192.168.2.248 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.1.0.0/16拷贝 kubectl 使用的连接 k8s 认证文件到默认路径
1
exit
1
mkdir -p $HOME/.kube
1
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
1
sudo chown $(id -u):$(id -g) $HOME/.kube/config
1
echo 'export KUBECONFIG=$HOME/.kube/config' >>~/.bashrc
- 初始化成功之后记录以下信息,添加node节点时使用。
1
2kubeadm join 192.169.1.210:6443 --token s2zrot.578bgfdqcr44aivw \
--discovery-token-ca-cert-hash sha256:a4b764099ac50a152d8d9a7640c16380297bae8c7ffafd6e3ca76144bfde9f6c安装Pod网络插件 calico
1
kubectl apply -f https://docs.projectcalico.org/v3.18/manifests/calico.yaml
添加node节点
- 以下操作在Node节点上执行
1
sudo su -
1
2kubeadm join 192.169.1.210:6443 --token s2zrot.578bgfdqcr44aivw \
--discovery-token-ca-cert-hash sha256:a4b764099ac50a152d8d9a7640c16380297bae8c7ffafd6e3ca76144bfde9f6c
k8s dashboard
部署 Dashboard UI
1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
更改ClusterIP为NodePort
1
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
创建配置文件 dashboard-adminuser.yaml
1
wget https://github.com/realwujing/k8s-learning/blob/dff12f0c9f2cf74ee13e0aa44babbd2786279bf2/k8s%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2/dashboard-adminuser.yaml
具体参考:
执行
1
kubectl apply -f dashboard-adminuser.yaml
k8s忘记dashboard密码
1
kubectl -n kubernetes-dashboard get secret
1
kubectl describe secret admin-user-token-76rq7 -n kubernetes-dashboard
也可通过下方一行命令获取token:
1
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
获取 kubernetes-dashboard 对外暴露端口
1
kubectl get svc --all-namespaces
访问k8s dashboard
1
https://192.169.1.210:32188
-
1
thisisunsafe