IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> CoreDNS 1.9.0 openEuler 21.09 测试报告 -> 正文阅读

[系统运维]CoreDNS 1.9.0 openEuler 21.09 测试报告

测试报告

测试环境

使用华为云 ECS 进行 Kubernetes 集群的搭建,集群由一个 master 节点和一个 worker 节点组成,两个主机操作系统环境为 。

其中 master 节点为:

  • x86_64: 通用计算增强型 | c6s.large.2 | 2vCPUs | 4GiB | Ubuntu 20.04

worker 节点为:

  • aarch64: 鲲鹏通用计算增强型 | kc1.large.2 | 2vCPUs | 4GiB | Ubuntu 18.04

通过 calico 搭建完成 pod 网络之后通过部署 nginx 来进行测试,以能够看到 nginx 的欢迎页面为测试成功。

参考资料

  • https://zhuanlan.zhihu.com/p/138554103
  • https://python.iitter.com/other/10768.html
  • https://www.weave.works/docs/net/latest/kubernetes/kube-addon/
  • https://hollowmansblog.wordpress.com/2022/01/28/deploy-a-kubernetes-cluster-based-on-calico-and-opensuse-kubic/
  • https://leehao.me/k8s-%E9%83%A8%E7%BD%B2-nginx-%E5%85%A5%E9%97%A8/

测试步骤以及结果

开通华为云 ECS 服务流程(需要弹性公网IP)以及登录进入两个主机界面则不再阐述,这里放出我的两个主机界面截图:

  • Master:
  • Worker:

准备Kubernetes环境

首先再master中执行:

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
EOF
sudo sysctl --system

修改/etc/sysctl.d/10-network-security.conf

将下面两个参数的值从2修改为1:

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

然后使之生效:sudo sysctl --system

更新系统,安装软件:

sudo apt update && sudo apt dist-upgrade -y
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo apt-get update && sudo apt-get install -y ca-certificates curl software-properties-common apt-transport-https
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

修改Docker,在/etc/docker/daemon.json{}内,添加"exec-opts": ["native.cgroupdriver=systemd"],并执行

mkdir -p /var/lib/kubelet
cat > /var/lib/kubelet/config.yaml <<EOF
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
EOF
sudo systemctl restart docker

拉取镜像:

sudo kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers


将CoreDNS镜像替换为openEuler版:

docker rmi -f registry.aliyuncs.com/google_containers/coredns:v1.8.6
docker pull hollowman6/coredns-openeuler:1.9.0-21.09
docker tag docker.io/hollowman6/coredns-openeuler:1.9.0-21.09 registry.aliyuncs.com/google_containers/coredns:v1.8.6


然后将这节上述步骤再在worker中重复执行一遍。

部署Kubernetes

在master中执行:

sudo kubeadm init --pod-network-cidr 172.16.0.0/16 \
    --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

记下最后打印的join命令,然后执行:

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

在master中下载 https://docs.projectcalico.org/manifests/calico.yaml
修改CALICO_IPV4POOL_CIDR对应值为172.16.0.0/16,取消掉对应注释。

然后 kubectl apply -f calico.yaml

worker中运行刚刚记录的join命令:

集群构建成功!

稍等片刻,所有节点都正常运行:(以下命令都在master中执行)kubectl get nodes

kubectl get pods --all-namespaces

可知master节点(x86_64)与worker节点(aarch64)的CoreDNS镜像都部署测试成功。
一切正常!

测试在集群中部署Nginx应用

执行nano nginx-pod.yml,输入以下内容:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:alpine
    ports:
    - containerPort: 80

Ctrl-OEnterCtrl-X保存。

执行kubectl apply -f nginx-pod.yml

然后执行kubectl get pods nginx -o wide,可以看到 nginx pod 已处于 Running 状态,表示刚创建的 pod 已成功运行起来。

执行nano nginx-dep.yml,输入以下内容:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80

Ctrl-OEnterCtrl-X保存。

执行kubectl apply -f nginx-dep.yml

然后执行kubectl get deploy -o wide可以看到,刚创建的 nginx-deployment 的 3 个副本均处于 READY 状态:

执行nano nginx-svc.yml,输入以下内容:

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30080
  type: NodePort

Ctrl-OEnterCtrl-X保存。

执行kubectl apply -f nginx-svc.yml

然后执行kubectl get svc nginx-service -o wide查看 service 的状态:

执行curl 127.0.0.1:30080,可以看到nginx 的欢迎页面源代码,说明一切正常,集群测试到此结束!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:33:29  更:2022-02-16 13:34:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:23:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码