04.k8s的附加组件

4.k8s的附加组件

4.1 dns服务

安装dns服务
1:下载dns_docker镜像包

wget http://192.168.12.201/docker_image/docker_k8s_dns.tar.gz

2:导入dns_docker镜像包(所有节点或者node2节点)
3:修改skydns-rc.yaml,指定13的机器,该功能可加可不加

spec:nodeSelector:kubernetes.io/hostname: 192.168.111.13containers:   

上传文件skydns-rc.yaml

# Copyright 2016 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.# TODO - At some point, we need to rename all skydns-*.yaml.* files to kubedns-*.yaml.*
# Should keep target in cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml
# in sync with this file.# __MACHINE_GENERATED_WARNING__apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: kube-dnsnamespace: kube-systemlabels:k8s-app: kube-dnskubernetes.io/cluster-service: "true"
spec:replicas: 1# replicas: not specified here:# 1. In order to make Addon Manager do not reconcile this replicas parameter.# 2. Default is 1.# 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.strategy:rollingUpdate:maxSurge: 10%maxUnavailable: 0selector:matchLabels:k8s-app: kube-dnstemplate:metadata:labels:k8s-app: kube-dnsannotations:scheduler.alpha.kubernetes.io/critical-pod: ''scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'spec:containers:- name: kubedns    #接收k8simage: gcr.io/google_containers/kubedns-amd64:1.9resources:# TODO: Set memory limits when we've profiled the container for large# clusters, then set request = limit to keep this container in# guaranteed class. Currently, this container falls into the# "burstable" category so the kubelet doesn't backoff from restarting it.limits:memory: 170Mirequests:cpu: 100mmemory: 70MilivenessProbe:httpGet:path: /healthz-kubednsport: 8080scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5readinessProbe:httpGet:path: /readinessport: 8081scheme: HTTP# we poll on pod startup for the Kubernetes master service and# only setup the /readiness HTTP server once that's available.initialDelaySeconds: 3timeoutSeconds: 5args:- --domain=cluster.local.- --dns-port=10053- --config-map=kube-dns- --kube-master-url=http://92.168.111.11:8080# This should be set to v=2 only after the new image (cut from 1.5) has# been released, otherwise we will flood the logs.- --v=0#__PILLAR__FEDERATIONS__DOMAIN__MAP__env:- name: PROMETHEUS_PORTvalue: "10055"ports:- containerPort: 10053name: dns-localprotocol: UDP- containerPort: 10053name: dns-tcp-localprotocol: TCP- containerPort: 10055name: metricsprotocol: TCP- name: dnsmasq    #dns服务:dhcp,dnsimage: gcr.io/google_containers/kube-dnsmasq-amd64:1.4livenessProbe:httpGet:path: /healthz-dnsmasqport: 8080scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5args:- --cache-size=1000- --no-resolv- --server=127.0.0.1#10053#- --log-facility=-ports:- containerPort: 53name: dnsprotocol: UDP- containerPort: 53name: dns-tcpprotocol: TCP# see: https://github.com/kubernetes/kubernetes/issues/29055 for detailsresources:requests:cpu: 150mmemory: 10Mi- name: dnsmasq-metrics    #配合prometheus做监控image: gcr.io/google_containers/dnsmasq-metrics-amd64:1.0livenessProbe:httpGet:path: /metricsport: 10054scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5args:- --v=2- --logtostderrports:- containerPort: 10054name: metricsprotocol: TCPresources:requests:memory: 10Mi- name: healthz        #自动服务的健康检查image: gcr.io/google_containers/exechealthz-amd64:1.2resources:limits:memory: 50Mirequests:cpu: 10m# Note that this container shouldn't really need 50Mi of memory. The# limits are set higher than expected pending investigation on #29688.# The extra memory was stolen from the kubedns container to keep the# net memory requested by the pod constant.memory: 50Miargs:- --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null- --url=/healthz-dnsmasq- --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1:10053 >/dev/null- --url=/healthz-kubedns- --port=8080- --quietports:- containerPort: 8080protocol: TCPdnsPolicy: Default  # Don't use cluster DNS.

上传skydns-svc.yaml文件

# Copyright 2016 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.# TODO - At some point, we need to rename all skydns-*.yaml.* files to kubedns-*.yaml.*# Warning: This is a file generated from the base underscore template file: skydns-svc.yaml.baseapiVersion: v1
kind: Service
metadata:name: kube-dnsnamespace: kube-systemlabels:k8s-app: kube-dnskubernetes.io/cluster-service: "true"kubernetes.io/name: "KubeDNS"
spec:selector:k8s-app: kube-dnsclusterIP: 10.254.230.254ports:- name: dnsport: 53protocol: UDP- name: dns-tcpport: 53protocol: TCP

4:创建dns服务

kubectl  create  -f   skydns-rc.yaml

5:检查

kubectl get all --namespace=kube-system

6:修改所有node节点kubelet的配置文件

vim  /etc/kubernetes/kubelet
KUBELET_ARGS="--cluster_dns=10.254.230.254 --cluster_domain=cluster.local"
systemctl   restart kubelet

7:测试之前启动的tomcat-rc.yaml修改为mysql,重新创建该配置文件
在这里插入图片描述

在浏览器上重新访问tomcat服务和连接数据库,均正常。

4.2 namespace命令空间

namespace做资源隔离,就是被隔离的资源都是有属于自己的环境
创建资源隔离

kubectl create namespace quyunlong

查看资源隔离
在这里插入图片描述

将yml文件添加namespace
在这里插入图片描述

修改tomcat映射端口,防止冲突
在这里插入图片描述

创建yml文件,查看状态,映射端口30009
在这里插入图片描述

访问tomcat正常
在这里插入图片描述

4.3 健康检查

4.3.1 探针的种类

livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器
readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoints中移除

4.3.2 探针的检测方法

  • exec:执行一段命令,看返回值,例如执行命令echo $?
  • httpGet:检测某个 http 请求的返回状态码,例如正常2XX,不正常4XX、5XX等
  • tcpSocket:测试某个端口是否能够连接,例如telnet探测端口是否通

4.3.3 liveness探针的exec使用

vi  nginx_pod_exec.yaml 
apiVersion: v1
kind: Pod
metadata:name: exec
spec:containers:- name: nginximage: 192.168.111.11:5000/nginx:1.13ports:- containerPort: 80args:- /bin/sh- -c- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600livenessProbe:exec:    #执行命令看结果command:- cat- /tmp/healthyinitialDelaySeconds: 5    #初始5秒钟健康检查periodSeconds: 5           #周期性间隔时间5秒钟健康检查

测试方式:根据上面的脚本创建一个/tmp/healthy文件,执行的命令cat查看该路径的文件,30秒后删除该文件,就无法cat查看该文件;则重启该容器;

4.3.4 liveness探针的httpGet使用

vi   nginx_pod_httpGet.yaml 
apiVersion: v1
kind: Pod
metadata:name: httpget
spec:containers:- name: nginximage: 192.168.111.11:5000/nginx:1.13ports:- containerPort: 80livenessProbe:httpGet:path: /index.htmlport: 80initialDelaySeconds: 3periodSeconds: 3

测试方式:上面yml文件就直接get请求/index.html文件,进入容器中删除或者创建该文件,则容器能够get到该文件就会重启该容器

4.3.5 liveness探针的tcpSocket使用

vi   nginx_pod_tcpSocket.yaml
apiVersion: v1
kind: Pod
metadata:name: tcpSocket
spec:containers:- name: nginximage: 192.168.111.11:5000/nginx:1.13ports:- containerPort: 80livenessProbe:tcpSocket:port: 80initialDelaySeconds: 3periodSeconds: 3

测试方法:创建yml文件,会探测80端口,如果80端口正常,则容器正常;进入容器中将该ng配置文件的80端口修改任意非80端口,则容器就会重启;

4.3.6 readiness探针的httpGet使用

vi   nginx-rc-httpGet.yaml
aapiVersion: v1
kind: ReplicationController
metadata:name: readiness
spec:replicas: 2selector:app: readinesstemplate:metadata:labels:app: readinessspec:containers:- name: readinessimage: 192.168.111.11:5000/nginx:1.13ports:- containerPort: 80readinessProbe:httpGet:path: /quyunlong.htmlport: 80initialDelaySeconds: 3periodSeconds: 3

测试方法:
1.手动创建svc端口映射

kubectl expose rc readiness --post=80 --type=NodePort

2.创建该yml文件,系统默认不会存在quyunlong.html文件。所以该pod不会加入到svc中,容器也是掉线状态。进入容器中创建quyunlong.html则该pod会加入到svc中,并且容器时健康的状态;
在这里插入图片描述

pod与svc对应的端口映射与地址
在这里插入图片描述

4.4 dashboard服务

1:上传并导入镜像,打标签
在这里插入图片描述

2:上传两个yaml文件,创建dashborad的deployment和service;注意修改yml文件的镜像地址
在这里插入图片描述

3:访问http://192.168.111.11:8080/ui/
在这里插入图片描述

4.5 通过apiservicer反向代理访问service

第一种:NodePort类型,这种类型直接使用nodeIP和port访问即可

type: NodePortports:- port: 80targetPort: 80nodePort: 30008

第二种:ClusterIP类型,这种类型就是通过apiserver反向代理方式访问服务

 type: ClusterIPports:- port: 80targetPort: 80

通过上面访问dashboard服务就是通过apiserver方式,也就是类型为:tyep:ClusterIP

http://192.168.111.11:8080/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard/
http://192.168.111.11:8080/api/v1,表示apiserver的地址
proxy:表示代理的方式访问
namespaces=kube-system,表示选择哪个命名空间;
services=kubernetes-dashboard,表示svc的名字

测试验证,创建一个的rc和svc;类型为ClusterIP
在这里插入图片描述

根据apiserver代理方式链接的格式进行拼接访问ng服务

http://192.168.111.11:8080/api/v1,表示apiserver的地址
proxy:表示代理的方式访问
namespaces=default,表示选择哪个命名空间;
services=proxy,表示svc的名字
#拼接之后的NG服务链接
http://192.168.111.11:8080/api/v1/proxy/namespaces/default/services/proxy/

访问链接成功出现NG界面
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arduino RP2040 CDC虚拟串口通讯--普通串口不显示

这两天在用RP2040运行些程序,但发现一个问题,使用arduino IDE可以通过串口显示数据,但是其他串口工具不会显示数据,可以打开串口,排查一下午无果,相当头疼, 晚上搜索时发现这个介绍&#xff1a…

详细分析async/await的基本知识以及用法(附Demo)

目录 前言1. 基本知识2. Demo2.1 单异步2.2 多异步2.3 配合钩子2.4 差异 3. 实战 前言 原先在小程序的时候用过这个用法,知识点差不过,推荐阅读:详细分析Js中的Promise.all基本知识(附Demo) 以下文章针对Vue3知识&am…

【康耐视国产案例】智能AI相机机器视觉精准快速实现包裹标签的智能粘贴

康耐视推出的3D-A1000是专业的、匹配物流行业各类分拣机及包裹检测应用的全功能视觉检测系统,其能够准确检测分拣机上是否有包裹、包裹是否超出边界、空车检测、是否有遗留物品等。由于搭载了专利的三维结构光技术,产品具有更强大的创新性以满足持续更新…

ARM虚拟机安装OMV

OMV(OpenMediaVault)是基于 Debian GNU/Linux 的网络连接存储(network attached storage,NAS)解决方案。它包含 SSH、(S) FTP、SMB/CIFS、DAAP 媒体服务器、rsync、 BitTorrent 等很多种服务。它可用于 x86-64 和 ARM 平台。 在x86-64平台上&…

「浏览器」服务端渲染

前言 服务端渲染(Server-Side Rendering,SSR)是一种常见于网页应用的技术,它指的是在服务器上将网页的内容生成,然后发送完整的HTML页面到客户端的浏览器的过程。这与传统的客户端渲染(Client-Side Render…

Bean作用域和生产周期已经Bean的线程安全问题

bean 的作用域 单例(Singletion) : Spring 容器中只有一个 bean ,这个 bean 在整个应用程序内共享。 原话(Prototype) : 每次 getBean(), 都是不同的bean,都会创建一个实例。 请求(Request):每个HTTP请求都会创建一个新的 Bean …

旧衣回收小程序带来的收益优势,小程序有哪些功能?

随着互联网的快速发展,大众对旧衣回收市场也越来越了解,对于闲置的旧衣物也有了适合的处理方式。旧衣回收也符合了当下资源回收利用,因此,旧衣回收市场获得了爆发式增长,市场规模不断扩大。同时市场中还吸引了越来越多…

【调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站】

调试笔记-系列文章目录 调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站 文章目录 调试笔记-系列文章目录调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站 前言一、调试环境操作系统:OpenWrt 23.05.3调试环境调试目标…

安全风险 - 组件导出风险

在安全审查中关于组件导出风险是一种常见问题,不同组件都有可能遇到这种问题,而且从一定角度来看的话,如果涉及到三方业务,基本处于无法解决的场景,所以我们需要说明为何无法避免这种风险 组件导出风险能不能规避&…

【智能AI相机】基于AI的新型成像和照明技术

缩短检测时间 降低废品率和成本 更快捕捉更多缺陷 ” Trevista CI Dome将康耐视专利的计算成像算法与结构化漫射圆顶照明相结合,提供无与伦比的地形图像质量,为光泽和哑光表面检测提供创新解决方案。有助于:缩短检测时间、降低废品率和成本…

北京仁爱堂李艳波主任如何预约挂号?

北京仁爱堂擅长治疗神经系统疾病,例如:痉挛性斜颈,特发性震颤,眼球震颤,帕金森,眼球震颤等。 北京仁爱堂国医馆是一所集治疗、 预防、保健、养生于一体的传统中医诊所,具有精湛技术和丰富经验的…

C#的web项目ASP.NET

添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…

Vue进阶之Vue无代码可视化项目(一)

Vue无代码可视化项目 项目搭建初始步骤拓展:工程项目从0-1项目规范化package.jsoncpell.jsoncustom-words.txtts-eslint规则.eslintrc.cjsgit钩子检查有没有问题type-checkspellchecklint:stylehusky操作安装pre-commitpnpm的commit规范package.json:commitlint.config.cjs安装…

跨站点脚本 (XSS) 攻击是什么

跨站点脚本 (XSS) 攻击是什么 跨站点脚本(Cross-Site Scripting,简称 XSS)攻击是一种注入攻击,其中恶意脚本被注入到受信任的网站中。攻击者使用 Web 应用程序向不同的最终用户发送恶意代码,通常以浏览器端脚本的形式…

论文笔记:Image Anaimation经典论文-运动关键点模型(Monkey-Net)

Monkey-Net(MOviNg KEYpoints) paper: https://arxiv.org/pdf/1812.08861, CVPR 2019 code: https://github.com/AliaksandrSiarohin/monkey-net/tree/master 相关工作 视频生成演变过程: spatio-temporal network: 如基于GAN网络的生成模…

异常处理1--5.31

try--catch--finally格式: try{ }catch(错误类型){ }finally{ } 执行情况: package javatest5;public class test {public static void main(String[] args) {int num115;int num20;try{System.out.println("商等于:"num1/num…

太速科技-基于3U VPX 4核8线程I7 X86主板

基于3U VPX 4核8线程I7 X86主板 一、产品概述 该产品是一款基于第六代Intel i7四核八线程处理器的高性能3U VPX刀片式计算机。产品提供了4个x4 PCIe 3.0总线接口,其中2个x4 PCIe 3.0接口可配置为1个x8 PCIe3.0接口,另外2个x4 PCIe 3.0接口可灵活配置…

Unity版本使用情况统计(更新至2024年4月)

UWA发布|本期UWA发布的内容是第十四期Unity版本使用统计,统计周期为2023年11月至2024年4月,数据来源于UWA网站(www.uwa4d.com)性能诊断提测的项目。希望给Unity开发者提供相关的行业趋势作为参考。 2023年11月 - 2024年…

达梦数据库(六) -------- 数据迁移MYSQL->达梦数据库

前言:确保安装好达梦数据库,达梦数据库(三) -------- 安装和初始化达梦数据库_达梦数据库安装-CSDN博客,需要安装达梦的数据库软件包,直接安装达梦8是包含这个功能的。安装包下载地址如下需要注册: https://www.damen…

【网络安全】Web安全学习-前言及先导

一、网络安全概述 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因遭到破坏、更改、泄露,系统能连续可靠的正常运行,网络服务不中断。简单来说。就是要保障我们的网络环境安全稳定,不被人破…