ubuntu20.4 安装 kubeadm k8s 1.22

一、安装环境

win10

ubuntu 版本 20.04.3
docker 版本 20.10.7
k8s 版本 1.22.2

1、设置 root 密码

执行命令后,依次输入当前登录用户密码,要设置的 root 密码,确认 root 密码

sudo passwd root

为了方便将密码设置为 123456 即可

2、修改 ssh 配置文件

如果没有安装 ssh-server,执行安装命令,已经安装的跳过即可

sudo apt install openssh-server

3、修改配置文件

在 vim 中搜索定位 PermitRootLogin,可直接查找:

/PermitRootLogin

修改为

LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes

4、重启 ssh,使配置生效

sudo service ssh restart

现在可是使用 root 用户登录 ssh 了!!!

5、关闭防火墙

查看防火墙状态 inactive 说明是未激活

sudo ufw disable

6、关闭 Swap

Linux 的 Swap 内存交换机制是一定要关闭的,否则会因为内存交换而影响性能以及稳定性。 Kubernetes 1.8 开始要求关闭系统的 Swap,如果不关闭,默认配置下 kubelet 将无法启动。 执行 swapoff -a 可临时关闭,但系统重启后恢复 编辑 /etc/fstab,注释掉包含 swap 的那一行即可,重启后可永久关闭,如下所示

sed -i '/ swap / s/^/#/' /etc/fstab

关闭成功后,使用 top 命令查看,如下图所示表示正常

二、Docker

apt install docker.io

 更新 cgroupdriver 为 systemd

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uy35zvn6.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
​
systemctl daemon-reload
systemctl restart docker

三、kubernetes

1、iptables 配置

将桥接的 IPv4/IPv6 流量传递到 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

2、apt 包更新, 安装 apt-transport-https\ca-certificates\curl

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

3、添加 GPG 密钥

sudo curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

GnuPG,简称 GPG,来自  http://www.gnupg.org ,是 GPG 标准的一个免费实现。不管是 Linux 还是 Windows 平台,都可以使用。GPGneng 可以为文件生成签名、管理密匙以及验证签名。

4、添加 Kubernetes apt 存储库

sudo tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF

5、更新 apt 包, 安装 kubelet, kubeadm and kubectl

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

6、初始化集群

kubeadm init \
 --image-repository registry.aliyuncs.com/google_containers \
 --kubernetes-version v1.22.2 \
 --pod-network-cidr=10.244.0.0/16 \
 --apiserver-advertise-address=172.29.0.2

其中pod-network-cidr为创建后的内网段

7、去除 master 节点的污点

由于节点不多,所以去掉方便调度

kubectl taint nodes --all node-role.kubernetes.io/master-

8、安装Calico

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.0/manifests/tigera-operator.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.0/manifests/custom-resources.yaml

9、节点加入集群

安装成功

问题排查 

1、Unable to connect to the server: x509

root@VM-0-2-ubuntu:~# kubectl get cs
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")

 解决:

复制 kubeconfig 配置文件

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

2、Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused

出现这种情况,是 /etc/kubernetes/manifests/ 下的 kube-controller-manager.yaml 和 kube-scheduler.yaml 设置的默认端口是 0 导致的,解决方式是注释掉对应的 port 即可,操作如下:

 然后在 master 节点上重启 kubelet,systemctl restart kubelet.service,然后重新查看就正常了

3、kubectl get no NotReady

 

 安装网络插件Calico,见上文

实在不行可以再执行这个yaml文件

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

4、忘记 join token

kubeadm token create --print-join-command

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 20.04是一种流行的Linux操作系统,而Kubernetes(简称K8s)是一个用于容器编排和管理的开源平台。在Ubuntu 20.04上安装Kubernetes可以通过以下步骤完成: 1. 更新系统:首先,确保你的Ubuntu 20.04系统是最新的,可以使用以下命令进行系统更新: ``` sudo apt update sudo apt upgrade ``` 2. 安装Docker:Kubernetes使用Docker来管理容器,因此需要先安装Docker。可以使用以下命令安装Docker: ``` sudo apt install docker.io ``` 3. 配置Docker:安装完成后,需要配置Docker以允许非特权用户运行容器。可以使用以下命令完成配置: ``` sudo usermod -aG docker $USER newgrp docker ``` 4. 安装Kubernetes工具:接下来,需要安装Kubernetes工具包,包括kubectl和kubeadm。可以使用以下命令进行安装: ``` sudo apt install kubectl kubeadm ``` 5. 初始化Kubernetes Master节点:在安装完成后,需要初始化Kubernetes Master节点。可以使用以下命令进行初始化: ``` sudo kubeadm init ``` 6. 配置kubectl:初始化完成后,需要配置kubectl以与Kubernetes集群通信。可以使用以下命令进行配置: ``` mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 7. 安装网络插件:Kubernetes需要网络插件来实现容器之间的通信。可以选择安装不同的网络插件,如Flannel、Calico等。以下是安装Flannel的命令: ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 至此,你已经成功在Ubuntu 20.04上安装Kubernetes。你可以使用kubectl命令来管理和操作Kubernetes集群。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值