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 命令可以查看是否开内存交换
ubuntu18 安装k8s、openyurt_第1张图片

2、docker

加粗样式## 2.1 安装docker
参考 https://blog.csdn.net/x7536987/article/details/124808845
我的版本如下
ubuntu18 安装k8s、openyurt_第2张图片

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
ubuntu18 安装k8s、openyurt_第3张图片

免密钥登录

参考 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 <

一定要注意版本,默认最新版本一直装不上,因为这个版本问题,我卡住了三天了,他妈的
然后就成功了
到这里,master、node就可以了
ubuntu18 安装k8s、openyurt_第4张图片

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 的对应,参考下面这个
ubuntu18 安装k8s、openyurt_第5张图片

# 构建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
ubuntu18 安装k8s、openyurt_第6张图片

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

你可能感兴趣的:(docker,容器,kubernetes)