首页 > 系统相关 > ubuntu20.04安装Kubernetes(k8s)

ubuntu20.04安装Kubernetes(k8s)

时间:2023-07-19 16:44:41浏览次数:43  
标签:ubuntu20.04 kubernetes Kubernetes 安装 sudo apt kubeadm k8s config

1.禁止swap分区(必须)

暂时禁止:

sudo swapoff -a

永久禁止:

 # 注释掉swap一行
sudo vi /etc/fstab

2.更改net.bridge.bridge-nf-call-iptables的值为1.(Ubuntu 20.04默认为1)

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

3.安装Docker

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

开始安装K8S

1.安装kubeadm kubeadm kubectl

sudo apt-get update && sudo 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 -
sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF 
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

2.初始化

初始化我们使用配置文件的方式进行部署

创建默认的kubeadm-config.yaml文件

sudo kubeadm config print init-defaults  > kubeadm-config.yaml

我的配置文件:

注意:就修改标注的这2处就可以了,其他还使用默认生成的配置,因为版本不一样。

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.73 # 修改成本地内网ip
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock 
  imagePullPolicy: IfNotPresent
  name: 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.22.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}

安装master节点

# 日志级别为 5 可能会产生大量的输出 可以方便我们查看报错信息
sudo kubeadm init --config kubeadm-config.yaml --v=5

如果kubeadm init初始化失败可以使用重置命令。

# 重置
sudo kubeadm reset

3.看是否安装成功

日志出现一下代码表示安装成功、然后根据步骤进行操作就OK了:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

4.排查问题

排查这类问题的方法是执行如下命令查看具体错误原因:

journalctl -fxeu kubelet

相关命令:

kubectl get pods -n kube-system # 验证k8s是否安装成功
systemctl start kubelet
sudo systemctl start docker

官方文档:https://kubernetes.io/zh-cn/docs/home/
https://www.cnblogs.com/wwph/p/14203626.html

标签:ubuntu20.04,kubernetes,Kubernetes,安装,sudo,apt,kubeadm,k8s,config
From: https://www.cnblogs.com/tjw-bk/p/17566029.html

相关文章

  • K8s系列---【K8s如何配置优雅停机?】
    K8s如何配置优雅停机?应用部署在k8s中,需要设置pod的优雅停机时间(terminationGracePeriodSeconds),一般大于应用程序中spring.lifecycle.timeout-per-shutdown-phase设置的超时时间;设置之后服务更新或者重启时k8s会捕获到1号进程,在等待应用程序优雅关闭后,再杀死pod,从而减少对业务的......
  • K8S-Pod挂载数据卷权限问题
    场景:需要将同一个服务的多个Pod副本的日志持久化到本地,为方便根据Pod的名称快速查看日志,在Pod挂载数据卷时,可以通过subPathExpr和env变量配合使用为每个Pod副本自动创建以Pod名称命名的文件夹故障:自动创建的文件夹属主属组为root,业务进程使用appuser启动,导致程序无法进行写操作......
  • (四)Kubernetes部署storm后的kill命令找不到的问题
    使用Kubernetes部署storm集群后,发现Supervisor在运行过程中不断重启,十分奇怪。因此新开一个窗口追踪Supervisor的日志supervisor.log。最终发现每次storm在rebalance的时候,Supervisor需要kill掉本节点上的进程。但由于storm:1.2.2中的kill命令是一个shell内置命令,导致Supervisor......
  • 一篇有趣的K8S问题排查思路
    在K8S这个平台里,Pod是一种被广泛使用的概念。但是,Pod有时也会变得不稳定,让开发者感到很困惑。特别是当您第一次面对Pod问题时,可能感觉像一只无力的小猫,完全无法解决问题。常见的问题如下:Pod无法启动:像个拒绝上班的员工,这个Pod可能根本就不想工作!请检查相关的日志或配置文件,以找......
  • 应对突发流量,如何快速为自建 K8s 添加云上弹性能力
    作者:庄宇以Kubernetes为代表的容器技术带来的是一种应用交付模式的变革,其正迅速成为全世界数据中心的统一API。为了保证业务持续稳定、用户访问不中断,高可用、高弹性等能力是应用架构设计不变的追求,多集群架构天然具备这样的能力。而只有在Kubernetes这层统一且标准的API......
  • crane-scheduler基于真实负载进行k8s调度
    介绍kubernetes的原生调度器只能通过资源请求来调度pod,这很容易造成一系列负载不均的问题:对于某些节点,实际负载与资源请求相差不大,这会导致很大概率出现稳定性问题。对于其他节点来说,实际负载远小于资源请求,这将导致资源的巨大浪费。为了解决这些问题,动态调度器根据实际的......
  • kubernetes证书过期申请新的证书
    证书过期[root@k8s-master~]#kubectlgetpodsUnabletoconnecttotheserver:x509:certificatehasexpiredorisnotyetvalid查看证书的生效日期(发现已经过期)[root@k8s-master1~]#echo|openssls_client-showcerts-servernamegnupg.org-connectlocalho......
  • k8s中,secret中有多条数据,如何将某条数据挂载为一个单独的文件?
    secrete中,包含以下两条数据db-password,原内容是123456db-username,原内容是:admin 这里都是base64编码的结果。 在pod中,volumemounts中,subPath指定某个数据项的key值mountPath:为具体的某个文件的名字这样挂载之后,就是具体的文件了,文件的内容,就是key对应的值。......
  • kubeasz K8S测试环境删除多余 node 节点
    kubeaszK8S测试环境删除多余node节点背景:公司之前存在3套test环境,有1套环境部署的生产环境老系统,目前生产环境已经完成了新老系统切换,不在需要老系统test环境,需要进行回收1|查看节点列表使用kubectl命令来查看当前集群中的节点列表,以确认要删除的节点的名称。kub......
  • 通过kubectl连接Kubernetes集群
    1、安装kubectl本地客户端安装kubectl添加kubernete阿里云yum源#cat>/etc/yum.repos.d/kubernetes.repo<<EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gp......