kubeadm创建kubernetes cluster

需要使用root用户

ubuntu

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 kubeadm kubectl
#close swap
swapoff -a
#remove swap mount
vi /etc/fstab

apt-key 在最新版的发行版里已经标记弃用, 比如ubuntu, 需要通过/etc/apt/trusted.gpg.d 文件夹管理gpg密钥

fedora

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#close selinux
setenforce 0
#disable selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'
#disable firewalld
systemctl disable firewalld.service

dnf update && dnf install -y kubelet kubeadm kubectl
systemctl enable --now kubelet
#close swap
swapoff -a
#disable swap
dnf remove zram-generator-defaults

config

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
  - groups:
      - system:bootstrappers:kubeadm:default-node-token
    token: abcdef.0123456789abcdef
    ttl: 24h0m0s
    usages:
      - signing
      - authentication
kind: InitConfiguration
localAPIEndpoint:
  #apiserver address
  advertiseAddress: 192.168.1.2
  bindPort: 6443
nodeRegistration:
  # 此处使用containerd,最新版已经不支持docker部署
  criSocket: unix:///var/run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: rogerogers
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
dns: {}
etcd:
  external:
  #此处使用自建的etcd,也可以使用自带的etcd
    endpoints:
      - https://192.168.1.2:2379
    caFile: /etc/etcd/pki/ca.crt
    certFile: /etc/etcd/pki/apiserver-etcd-client.crt
    keyFile: /etc/etcd/pki/apiserver-etcd-client.key

kind: ClusterConfiguration
# 此处为最新版
kubernetesVersion: 1.24.1
networking:
  dnsDomain: cluster.local
  # 这里使用cni组件以flannel为例,其他cni组件需要修改
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}

可以使用kubeadm config print init-defaults打印最新版配置文件,对比修改下。

修改内核参数

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
overlay
EOF

cat <<EOF | sudo tee /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

可能需要立即加载模块

modprobe br_netfilter overlay
#先拉取镜像,加快部署速度
kubeadm config images pull --config kubeadm-init-config.yaml
#初始化
kubeadm init --config kubeadm-init-config.yaml
#单节点允许调度器调度部署
kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-
mkdir $HOME/.kube && sudo cp /etc/kubenertes/admin.conf $HOME/.kube/config
kubectl get node

可以看到k8s已经启动运行了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值