目录
前置条件:安装docker环境、kubeadm、关闭swap等
安装环境
- 云主机数量:1
- 系统:ubutun
- 硬件:2cpu 8G 50G
- 区域:香港(好处是无须解决科学上网的问题)
安装文档参考
前置条件:安装docker环境、kubeadm、关闭swap等
安装docker
# 安装docker
sudo apt-get update
sudo apt-get install -y docker.io
# 查看docker版本
docker ––version
# 启用
sudo systemctl enable docker
sudo systemctl start docker
# 配置容器运行时,使用 systemd 来管理容器的 cgroup
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 restart docker
# 关闭swap
sudo swapoff -a
# 注释/etc/fstab中关于swap的启动配置
# 配置主机名(master/node)
sudo hostnamectl set-hostname master-node
关闭swap内存
swapoff -a
安装kubeadm
# 允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
# 安装 kubeadm、kubelet 和 kubectl
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
# 下载 Google Cloud 公开签名秘钥
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
# 添加 Kubernetes apt 仓库
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 安装
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
# 注kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环。
# 配置Kubectl自动补全
- https://kubernetes.io/docs/reference/kubectl/cheatsheet/
source <(kubectl completion bash)
kubeadm创建集群
# 初始化集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# 配置config
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络组件
网络组件常用的有flannel和calico,这个根据个人使用习惯进行选择即可,这是使用的是calico
# 下载yaml
curl https://docs.projectcalico.org/manifests/calico.yaml -O
# 安装
kubectl apply -f calico.yaml
工作节点加入集群(可选)
- 工作节点也需安装docker、kubelet,配置主机名
# 命令格式:kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
# 运行kubeadm init后提示的命令
kubeadm join 10.0.4.12:6443 --token 6j1omz.c0va23j4xmjqpwzq \
--discovery-token-ca-cert-hash sha256:3dc9d799a7acf18019cccba3131bc088e08b2d8f3d0e8154c0314854bb2eb145
# 获取token
kubeadm token list
#默认情况下,令牌会在24小时后过期。如果要在当前令牌过期后将节点加入集群, 则可以通过在控制平面节点上运行以下命令来创建新令牌:
kubeadm token create
# 获取--discovery-token-ca-cert-hash 的值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'