安装
查看信息版本修改系统配置信息
- 关闭swap
- 临时关闭
swapoff -a
- 永久关闭(需要重启)
- 关闭防火墙
ufw disable
# 检查防火墙状态
ufw status
- 启用 bridge-nf-call-iptables 预防网络问题
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
- 设置网桥参数
cat << EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
- 修改hosts文件
vim /etc/hosts
192.168.1.36 master
- 修改主机名称
hostnamectl set-hostname master
安装docker
- 使用阿里云安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 修改docker的 /etc/docker/daemon.json文件
# 其中registry-mirrors修改为自己对应的阿里docker加速器地址
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
- 重启docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
安装kubeadm kubelet kubect
- 配置阿里镜像并安装1.23.17版本
apt-get update && apt-get install -y apt-transport-https
curl 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
apt-get update
apt-get install -y kubelet=1.23.17-00 kubeadm=1.23.17-00 kubectl=1.23.17-00
- 查看安装版本
kubelet --version
kubectl version
kubeadm version
- 启动kubelet
systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet
- 拉取init-config配置
kubeadm config print init-defaults > init-config.yaml
- 修改init-config.yaml文件
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.1.36 #master节点IP地址
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
imagePullPolicy: IfNotPresent
name: master #master节点node的名称
taints: null
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers #修改为阿里云地址
kind: ClusterConfiguration
kubernetesVersion: 1.23.17 #修改为k8s的安装版本
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12
scheduler: {}
- 拉取k8s相关镜像
kubeadm config images pull --config=init-config.yaml
- 初始化节点
- 如果执行出错,可在排除问题后,执行
kubeadm reset
后再重新执行以下命令
kubeadm init --apiserver-advertise-address=192.168.1.36 --apiserver-bind-port=6443 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --kubernetes-version=1.23.17 --image-repository registry.aliyuncs.com/google_containers
- 拷贝配置文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装weave 网络插件
wget http://static.corecore.cn/weave.v2.8.1.yaml
kubectl apply -f weave.v2.8.1.yaml
- 查看
kubectl get pods --all-namespaces
kubectl get nodes
- 允许在主节点上调度工作负载(仅测试环境,只有一台机器的情况下)
kubectl taint nodes --all node-role.kubernetes.io/master-
卸载
- 删除 kubeadm、kubelet 和 kubectl 软件包
sudo apt-get remove --purge kubelet kubeadm kubectl
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/kubelet