k8s 集群部署 (ubuntu)

1.安装 docker (所有机器——是指 master 和 node 节点)

#更新
apt-get update
#安装最新版本 docker
apt install docker.io -y
#运行 docker 并设置开机自启
systemctl start docker
systemctl enable docker

2.设置 k8s 环境准备条件 (所有机器)

#关闭 swap 分区 ,在旧版 k8s 是需要关闭分区,但最新版已经支持 swap 这一步根据情况可省略
swapoff -a
#永久禁用 swap
vim /etc/fstab    注释掉 swap 一行
#修改内核参数
apt install -y bridge-utils
modprobe br_netfilter
lsmod | grep br_netfilter

3.安装与配置 k8s

1. 安装 kubelet kubeadm kubectl (master)

#安装基础环境
apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
#配置 K8S 阿里源
vim /etc/apt/sources.list.d/kubernetes.list
加入内容:
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
#安装 kubelet kubeadm kubectl
apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00
#阻止自动更新
apt-mark hold kubelet kubeadm kubectl

   2. 部署 master

#创建 kubeadm-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.80.131                #此配置是本机 IP 地址
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  imagePullPolicy: IfNotPresent
  name: master
  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.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.23.1
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
#cgroupDriver: systemd
cgroupDriver: cgroupfs
#测试是否能够 pull 镜像,如果不能,还需以下操作,如果可以,可以跳过以下操作
kubeadm config images pull  (如果无法pull,那就需要跟着下面用docker去pull,然后改名为缺少的依赖)
#查看 kubeadm config的依赖有哪些
kubeadm config images list

k8s.gcr.io/kube-apiserver:v1.23.17
k8s.gcr.io/kube-controller-manager:v1.23.17
k8s.gcr.io/kube-scheduler:v1.23.17
k8s.gcr.io/kube-proxy:v1.23.17
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6
#然后从国内拉取这些镜像 
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.17
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.17
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.17
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.17
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0
docker pull coredns/coredns:1.8.6
#然后根据 list出来的依赖对这些镜像重命名
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.17 k8s.gcr.io/kube-apiserver:v1.23.17
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.17 k8s.gcr.io/kube-controller-manager:v1.23.17
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.17 k8s.gcr.io/kube-scheduler:v1.23.17
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.17 k8s.gcr.io/kube-proxy:v1.23.17
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0 k8s.gcr.io/etcd:3.5.1-0
docker tag coredns/coredns:1.8.6 k8s.gcr.io/coredns/coredns:v1.8.6

3. 执行初始化操作

#初始化
kubeadm init --config kubeadm-config.yaml

显示初始化成功,运行这三条命令,下面则是 node 节点加入集群的命令,需要在 node 几点运行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4. 部署工作节点 (在 node 上执行)

#安装基础环境
apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
#配置阿里源
vim /etc/apt/sources.list.d/kubernetes.list
加入内容:
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
#更新
apt-get update -y
# 安装kubeadm、kubectl、kubelet
apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00
# 阻止自动更新
apt-mark hold kubelet kubeadm kubectl
#加入集群
kubeadm join 192.168.80.131:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:781810b813a36593896ac337a964f1ae633dad1fd94db04cec82ef0968cd6d77

4.部署 Calico (master)

以上步骤安装完后,机器搭建起来了,但状态还是NotReady状态,如下图,master机器需要安装Calico

kubectl apply -f https://docs.projectcalico.org/v3.21/manifests/calico.yaml

等几分钟让 master把节点拉起来就ok了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头的花季少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值