前言
个人测试学习 测试使用的k8s集群 部署方案 大致有三种 minikube microk8s kubeadm
前两种 略过
kubeadm 是k8s官方提供的安装部署工具 能够很简单的搭建管理 单体、或者HA的k8s集群
示例
环境:
- ubuntu20.04
参考文档:
https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm/
https://www.kubernetes.org.cn/7189.html
https://blog.csdn.net/l1028386804/article/details/105904557
调整配置
- 关闭swap
1 | 关闭 |
配置docker加速
script 1
2
3
4
5
6sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7vm1yv9c.mirror.aliyuncs.com"]
}
EOF配置内核参数
script 1
2
3
4
5
6cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
生效
sysctl --system
安装kubectl kubelet kubeadm
1 | sudo apt-get update && sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl |
初始化集群
1 | kubeadm init --kubernetes-version=1.18.0 \ |
日志:
1 | W0525 14:53:34.914975 8467 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] |
创建kubectl
1 | mkdir -p $HOME/.kube |
安装网络 calico
1 | kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml |
执行日志:
1 | configmap/calico-config created |
1 | 查看calico插件安装启动完毕 没有 |
运行成功的样子:
1 | NAMESPACE NAME READY STATUS RESTARTS AGE |
安装kubernetes-dashboard
1 | wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml |
获取token
1 | 获取token |
如果报错如下:
权限不足:
新增权限:
1 | echo ' |
重启服务器恢复K8s
1 | docker start $(docker ps -a | awk '{print $1}' |tail -n +2) |
总结
网络上 大多是以centos 来举例 事实上ubuntu部署会比centos更加简单 因为版本迭代快 各种依赖、内核 都是最新的
使用kubeadm 部署一套单机环境 每什么大问题 主要还是配置好服务器 如关闭swap selinux等常规要求