百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

K8S单点部署-etcd、yaml、pod配置与管理

bigegpt 2024-10-02 11:37 3 浏览

#云平台# #云计算# #Docker# #Kubernetes# #k8s#

1.1 单点部署

1.1.1 环境配置:关闭防火墙

关闭:iptables

systemctl stop iptables

关闭:firewalld

systemctl stop firewalld

关闭:selinux

setenforce 0 (立即生效,重启后读取配置文件设置)

修改配置文件(重启后生效)

vi /etc/sysconfig/selinux

SELINUX=disabled

1.1.2 安装docker

yum install docker

修改docker配置文件:/etc/sysconfig/docker

OPTIONS=’–selinux-enabled=false –insecure-registry gcr.io’

启动docker 服务

systemctl start docker

1.1.3 安装证书

yum install *rhsm*

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

1.1.4 安装kubernetes

yum install etcd

yum install kubernetes

yum install flannel –y

修改Kubernetes apiservce配置文件/etc/kubernetes/apiserver:把admission_control参数中的ServiceAccount删除。

测试:kubectl version

1.1.5 启动k8s服务

# systemctl start etcd

# systemctl start docker

# systemctl start kube-apiserver

# systemctl start kube-controller-manager

# systemctl start kube-scheduler

# systemctl start kubelet

# systemctl start kube-proxy

1.1.6 运行容器

kubectl run my-nginx-deployment --image=nginx --port=80

1.1.7 查看pod

kubectl get pod #查看pod


1.1.8 运行服务,对外开放接口

kubectl expose deployment/my-nginx-deployment --type="NodePort" --port=80 --target-port=80

查看服务,查看对外开放接口

kubectl get services


运行验证


1.2 配置文件

1.2.1 etcd配置:端口等配置

vi /etc/etcd/etcd.conf

1.2.2 apiServer配置:端口、ETCD等配置

/etc/kubernetes/apiserver

1.2.3 Master配置:端口管理

/etc/kubernetes/config

1.3 通过yaml文件管理

运行:kubectl create -f 文件名

1.3.1 yaml基本语法

key:value

空格缩进标识级别

大小写敏感

#注释

数组:

名称

- 属性1

- 属性2.1

属性2.2

1.3.2 yaml结构:版本apiVersion+类型kind+元数据meteadata+具体参数spec

apiVersion:kubectl api-versions查看

类型kind:Deployment部署,Service服务,Pod,NameSpace,ConfigMap,Secret

元数据metadata:本应用的元数据,包括name、label、namespace等。

具体参数spec:详细设置内容

应用要点:注意配置文件存储在单独的svn仓库中,便于回滚。

1.3.3 NameSpace配置

apiVersion: v1

kind: Namespace

metadata:

name: development

labels:

name: nlp

1.3.4 ConfigMap配置

apiVersion: v1

kind: ConfigMap

metadata:

name: myconfigMap

data:

config1: xxx

config2: yyy

1.3.5 Secret配置

apiVersion: v1

kind: Secret

metadata:

name: mysecret

data:

username: xxx

password: yyy

1.3.6 Pod配置:container配置

port :Service的集群端口

targetPort :pod上的端口

nodePort : Service的外网端口

apiVersion: v1 #必选,版本号,例如v1

kind: Pod #必选,Pod

metadata: #必选,元数据

name: string #必选,Pod名称

namespace: string #必选,Pod所属的命名空间

labels: #自定义标签

- name: string #自定义标签名字

annotations: #自定义注释列表

- name: string

spec: #必选,Pod中容器的详细定义

containers: #必选,Pod中容器列表

- name: string #必选,容器名称

image: string #必选,容器的镜像名称

1.3.7 Service配置:配置type,ports和selector

kind: Service

apiVersion: v1

metadata:

name: redis

spec:

type: NodePort

ports:

- protocol: TCP

port: 6379

targetPort: 6379

nodePort: 30379

name: test

selector:

app: default.Deployment.redis_server

1.3.8 Deploymeng配置:设置relicas:设置备份数

apiVersion: apps/v1beta1

kind: Deployment

metadata:

name: redis-deployment

spec:

replicas: 2

template:

metadata:

labels:

app: default.Deployment.redis_server

1.3.9 应用:yaml文件部署

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

name: my-nginx

spec:

replicas: 2

template:

metadata:

labels:

app: my-nginx

spec:

containers:

- name: nginx

image: nginx

ports:

- containerPort: 80

1.3.10 应用:yaml文件创建服务

apiVersion: v1

kind: Service

metadata:

name: my-nginx-service

spec:

type: NodePort

ports:

- port: 30080

targetPort: 80

nodePort: 30082

selector:

app: my-nginx

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...