专业的编程技术博客社区

网站首页 > 博客文章 正文

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

baijin 2024-11-16 17:05:09 博客文章 2 ℃ 0 评论

#云平台# #云计算# #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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表