ubuntu18 安装k8s、openyurt

参考链接

ubuntu部署k8s https://blog.csdn.net/SHELLCODE_8BIT/article/details/122192034
ubuntu 永久关闭swap https://blog.csdn.net/Marco_90/article/details/121491195
虚拟机组网 https://www.jianshu.com/p/e6684182471b
https://www.cnblogs.com/wwph/p/14203626.html#!comments
k8s 1.24.3的安装,可以直接参考这两个链接
https://blog.csdn.net/weixin_43501172/article/details/125869017
https://www.pudn.com/news/6287bcd2b305d84a4f93d74d.html#2577_worker_node_1731

kubeedge 安装 ,参考
https://blog.csdn.net/qq_42007073/article/details/124959523?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165724359016780366535829%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165724359016780366535829&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-124959523-null-null.142v32new_blog_pos_by_title,185v2tag_show&utm_term=kubeedge%20ubuntu&spm=1018.2226.3001.4187

https://v1-9.docs.kubeedge.io/zh/docs/setup/keadm_zh/

sedna 安装
https://blog.csdn.net/MacWx/article/details/130200209

sedna 案例
https://blog.csdn.net/weixin_40944277/article/details/120537050

现在flannel 网络有问题

1、关闭swap 内存

free -m 命令可以查看是否开内存交换
在这里插入图片描述

2、docker

加粗样式## 2.1 安装docker
参考 https://blog.csdn.net/x7536987/article/details/124808845
我的版本如下
在这里插入图片描述

2.2 docker 配置

docker cgroup 需要用systemd,20.10以上版本默认应该是systemd

# 查看Cgroup版本
docker info | grep Cgroup

在这里插入图片描述

如果不是 systemd
那么

sudo vi /etc/docker/daemon.json

打开后输入以下内容:

{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
],
"exec-opts": [ "native.cgroupdriver=systemd" ]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

3、虚拟机组网,保证ssh能访问

3.1 master、node设置静态ip

参考链接 https://www.idcspy.com/37633.html

3.2 两台电脑设置hostname

k8s-master、k8s-node-01

# 查看当前的hostname
hostname 或hostnamectl
# 修改hostname
hostnamectl set-hostname k8s-master  # master节点的主机名
hostnamectl set-hostname k8s-node1   # node1节点的主机名
# 在两台机器上打开/etc/hosts加入
192.168.129.203 k8s-master kube-apiserver
192.168.129.202 k8s-node1

3.3 设置ssh,想要免密访问的node

sudo vi ~/.ssh/config

#指定node别名为 k8s-node1
Host  k8s-node1
# 指定node目标 ip
hostname 192.168.129.202
# 指定登录用户名
user martin

验证ssh

master 就可以直接ssh登录k8s-node-01
在这里插入图片描述

免密钥登录

参考 http://t.zoukankan.com/orange911-p-8669096.html

4 安装k8s

安装完了 docker 就可以下载 k8s 的三个主要组件kubelet、kubeadm以及kubectl了。这一步master、node都需要进行安装。先来简单介绍一下这三者:

kubelet: k8s 的核心服务
kubeadm: 这个是用于快速安装 k8s 的一个集成工具,我们在master1和worker1上的 k8s 部署都将使用它来完成。
kubectl: k8s 的命令行工具,部署完成之后后续的操作都要用它来执行
其实这三个的下载很简单,直接用apt-get就好了,但是因为某些原因,它们的下载地址不存在了。所以我们需要用国内的镜像站来下载,也很简单,依次执行下面五条命令即可:

# 更改net.bridge.bridge-nf-call-iptables的值为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
# 安装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
apt-cache madison kubelet  可以先查看一下版本,建议不要装最新的
apt-get install -y kubelet=1.18.6-00  kubeadm=1.18.6-00 kubectl=1.18.6-00
sudo apt-mark hold kubelet kubeadm kubectl  # master、node都要运行这些命令
# 启动  master运行这个命令
kubeadm init --kubernetes-version=v1.18.6 --image-repository registry.aliyuncs.com/google_containers 
# node 运行这个命令
kubeadm join 192.168.129.203:6443 --token wwl30a.5cgtfylfrywb8faw \
    --discovery-token-ca-cert-hash sha256:e414b291dea9f318869b6f4b79f24c470423c3986c64282578ef33e1f96ce083 #这条命令来自于master 成功后的最下方。可以在master节点上使用kubeadm token create --print-join-command命令来重新生成一条

一定要注意版本,默认最新版本一直装不上,因为这个版本问题,我卡住了三天了,他妈的
然后就成功了
到这里,master、node就可以了
在这里插入图片描述

5 配置cni网络

kubectl get nodes 查看节点,发现节点notready

 $ kubectl get nodes -o wide |grep NotReady
 $ kubectl describe node [node-ip] #查看节点状态,会发现跟notready 跟 cni有关系,需要配置cni网络

参考链接 https://blog.csdn.net/yangshihuz/article/details/113585122

6 测试master、node

- 添加 cni 配置(云端管控节点和树莓派都需要配置),本文搭建的集群使用主机网络。创建 cni 配置文件 /etc/cni/net.d/0-loopback.conf,并将如下内容拷贝到该文件中。
{
“cniVersion”: “0.3.0”,
“name”: “lo”,
“type”: “loopback”
}

- 删除 master node 的CoreDNS(本文 Demo 中 CoreDNS 不需要使用),并将 master 节点的 taints 去掉(方便后续部署 OpenYurt 组件)。
kubectl delete deployment coredns -n kube-system
kubectl taint node master-node http://node-role.kubernetes.io
# 原生 K8s 集群在边缘场景中的问题

基于上述环境,我们来测试一下原生 K8s 在云管边架构中对云边运维的支持和对云边网络断开时的反应。首先,我们从云端部署一个测试应用 nginx,在 master 节点上执行 kubectl apply -f nginx.yaml,具体的部署 yaml 如下。

> 注意:nodeSelector 选择 k8s-node1 节点,主机网络配置为 true,并配置 pod 的容忍时间为 5s(默认 5min, 此处配置便于演示 pod 驱逐)。

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  tolerations:
  - key: "node.kubernetes.io/unreachable"
    operator: "Exists"
    effect: "NoExecute"
    tolerationSeconds: 5
  - key: "node.kubernetes.io/not-ready"
    operator: "Exists"
    effect: "NoExecute"
    tolerationSeconds: 5
  nodeSelector:
    kubernetes.io/hostname: k8s-node1
  containers:
    - name: nginx
      image: nginx
  hostNetwork: true

#查看部署结果:
kubectl get pods -owide

kubectl logs nginx
kubectl exec -it nginx sh
kubectl port-forward pod/nginx 8888:80

7、安装openyurt

首先是配置/etc/hosts ,配置ip和github 的对应,参考下面这个
在这里插入图片描述

# 构建yurtctl工具
git clone https://github.com/openyurtio/openyurt.git
cd openyurt
export GOOS=linux GOARCH=amd64
make build  WHAT=cmd/yurtctl # 需要先安装golang 环境,再执行这个命令
# 安装golang环境,才能编译yurtctl工具
wget https://dl.google.com/go/go1.16.14.linux-amd64.tar.gz
sudo tar -zxvf go1.16.14.linux-amd64.tar.gz -C /usr/local/software

vim $HOME/.profile

export GOROOT=/usr/local/go/software
export PATH=$PATH:$GOROOT/bin

# 激活profile
source $HOME/.profile

或则
修改etc/environment文件,在PATH=后面的字符串中添加:/usr/local/software/go/bin ,这样做go环境永久生效

# 记得设置代理,不然编译yurtctl 的时候 ,proxy.golang.org/github.com  这个地址会一直timeout

go env -w GOPROXY=https://goproxy.cn


# 检查go version
go version


# 编译openyurt 工具
cd /usr/local/software/openyurt
make build  WHAT=cmd/yurtctl

在 make build 的过程中,会多次 i/o timeout ,需要配置ip 和 地址的对应关系,参照上面的 ip和github对应关系,然后修改/etc/hosts,修改之后刷新网络

# 刷新网络
sudo service network-manager restart
# 再编译openyurt 工具 
make build  WHAT=cmd/yurtctl

初始化 master 节点 报错

1、unknown service runtime.v1alpha2.RuntimeService

参考链接 https://blog.csdn.net/weixin_40668374/article/details/124849090

2、报错超时

然后用 journalctl -xeu kubelet、 用kubectl get node 查看节点
参考链接 https://blog.csdn.net/CEVERY/article/details/108753379
在这里插入图片描述

3、8080端口错误、 6443 端口错误

https://blog.csdn.net/CEVERY/article/details/108753379
https://blog.csdn.net/sinat_28371057/article/details/109895159

kubeadm init 报错
https://blog.51cto.com/u_15082391/3536718

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值