ubuntu搭建k8s及错误处理

ubuntu系统可以在阿里云购买,自己搭虚拟机

设置主机名

# 根据规划设置主机名【master节点上操作】
hostnamectl set-hostname k8smaster
# 根据规划设置主机名【node1节点操作】
hostnamectl set-hostname k8snode1
# 根据规划设置主机名【node2节点操作】
hostnamectl set-hostname k8snode2

更新 /etc/hosts 文件,添加所有节点的 IP 和主机名:
192.168.0.1 master
192.168.0.2 worker1
192.168.0.3 worker2

更新apt

sudo apt-get update
sudo apt-get upgrade -y

关闭swap

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

关闭setenforce

setenforce 0  
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

配置内核模块和 sysctl:

sudo modprobe overlay
sudo modprobe br_netfilter

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

sudo sysctl --system
 

安装 Docker

apt-get uptate

apt install -y docker.io

s配置 Docker 使用 systemd 作为 cgroup 驱动:

cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

systemctl daemon-reload
sudo systemctl restart docker

如果不能restart docker可能是json文件写的有问题

docker info |grep "Cgroup Driver"
 Cgroup Driver: systemd #表明已经更新为了systemd


重置kubeadm(执行kub后用,首次初始化不用)

kubeadm reset

下载并添加阿里云的 GPG 密钥:

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

添加阿里云的 Kubernetes 软件源:

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

EOF

安装特定版本的 Kubernetes 组件

sudo apt-get update

sudo apt-get install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00

sudo apt-mark hold kubelet kubeadm kubectl
 

初始化

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \

  --pod-network-cidr=10.244.0.0/16
  --kubernetes-version v1.23.6 \

  --ignore-preflight-errors=Swap

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \
  --pod-network-cidr=10.244.0.0/16

成功

一定要记住token,

没记住

kubeadm token list

如果忘记创建token

kubeadm token create

kubeadm token create --print-join-command

 

使用kubectl工具 【master节点操作】

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

执行完成后,我们使用下面命令,查看我们正在运行的节点

kubectl get nodes

加入节点 在子节点运行

kubeadm join 47.251.79.171:6443 --token cb4pw9.k2l0nplof1t535x8 --discovery-token-ca-cert-hash sha256:bb76bcfcf963c9f0688a25bbeba65fd241119f76e89e3f58312942f2bd1d092e

获取sha256:openssl x509 pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'

加入节点成功 

如果是为准备状态,安装网络插件

curl https://docs.projectcalico.org/manifests/calico.yaml -O

curl -o calico.yaml https://calico-v3-25.netlify.app/archive/v3.25/manifests/calico.yaml

编辑文件

CALICO_IPV4POOL_CIDR 
改成初始化的ip  10.244.0.0/16

 

grep image calico.yaml

sed -i 's#docker.io/##g' calico.yaml

这样docke比较好拉

 sudo kubectl apply -f calico.yaml

 

kubectl get po -n kube-system 

 

全部准备好

 kubectl get node

 

搭建runcher页面

错误处理

"Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\"

vim /etc/docker/daemon.json
cat >> /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://m6qghhcm.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

systemctl daemon-reload
systemctl restart docker

还有出现一大堆错误之前用

sudo kubeadm init \
  --apiserver-advertise-address=47.251.9.5 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.6 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16
  


改成




初始化

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.6 \
  --pod-network-cidr=10.244.0.0/16
  --ignore-preflight-errors=Swap

错误

在加入节点是,经常超时等就需要配置这个文件
:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

cat /etc/kubernetes/manifests/kube-apiserver.yaml

- --advertise-address=198.11.175.187
- --bind-address=0.0.0.0
- --secure-port=6443

这里之前我的IP选的是公网ip,不知道为什么访问不了,使用下面命令可以看到私有ip通过这个进行访问就可以了
 

报错The connection to the server 172.18.81.202:6443 was refused - did you specify the right host or port?

没有配置正确的环境 /etc/host

echo "export KUBECONFIG=/etc/kubernetes/kubelet.conf" >> /etc/profile
source /etc/profile
 

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 Kubernetes 集群需要以下步骤: 1. 安装 Docker 和 kubeadm 工具 2. 初始化 master 节点 3. 加入 worker 节点 4. 部署网络插件 5. 部署 Dashboard 以下是详细的步骤: 1. 安装 Docker 和 kubeadm 工具 在每个节点上安装 Docker 和 kubeadm 工具。可以使用以下命令: ``` sudo apt-get update sudo apt-get install -y docker.io sudo apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl ``` 2. 初始化 master 节点 在 master 节点上运行以下命令: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 该命令将初始化 Kubernetes 集群并设置 pod 网络 CIDR。执行此命令后,会生成一个命令,你需要在后面的节点加入时使用该命令。 3. 加入 worker 节点 在 worker 节点上运行刚才生成的命令。例如: ``` sudo kubeadm join 10.0.0.1:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef ``` 在 master 节点上运行以下命令,验证 worker 节点是否已成功加入: ``` kubectl get nodes ``` 4. 部署网络插件 Kubernetes 集群需要一个网络插件来管理 pod 之间的通信。这里使用 Flannel 网络插件。 在 master 节点上运行以下命令: ``` kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 5. 部署 Dashboard Kubernetes Dashboard 是一个 Web UI,可以用来管理 Kubernetes 集群。 在 master 节点上运行以下命令: ``` kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml ``` 然后,创建一个 ServiceAccount 并将其与 ClusterRoleBinding 绑定: ``` kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml ``` 最后,运行以下命令: ``` kubectl proxy ``` 然后,在浏览器中访问 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/,即可访问 Kubernetes Dashboard。 以上就是在 Ubuntu搭建 Kubernetes 集群的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值