目录:
Kubernetes结构图
基于K8S,创建企业CentOS6.x虚拟机
-
使用UI创建
-
使用yaml文件创建
# 创建
[root@localhost ~]# kubectl create -f nginx.yaml
# 删除
[root@localhost ~]# kubectl delete -f nginx.yaml
nginx.yaml(示例)
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: sh-nginx-v1
namespace: default
labels:
k8s-app: sh-nginx-v1
kubernetes.io/cluster-service: "true"
spec:
selector:
matchLabels:
k8s-app: sh-nginx-v1
template:
metadata:
labels:
k8s-app: sh-nginx-v1
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
spec:
containers:
- name: sh-nginx-v1
image: docker.io/nginx
resources:
# keep request = limit to keep this container in guaranteed class
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
- 安装nginx
如遇报错:Cannot retrieve metalink for repository: epel. Please verify its path and try again
按此博客操作
https://www.cnblogs.com/dadong616/p/5062727.html
[root@sh-centos6-v1-467070287-nfkbr ~]# yum install epel-release -y
[root@sh-centos6-v1-467070287-nfkbr ~]# yum install nginx -y
- 启动nginx服务
[root@sh-centos6-v1-467070287-nfkbr yum.repos.d]# service nginx restart
Stopping nginx: [FAILED]
Starting nginx: [ OK ]
[root@sh-centos6-v1-467070287-nfkbr yum.repos.d]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 239/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1/sshd
tcp 0 0 :::80 :::* LISTEN 239/nginx
tcp 0 0 :::22 :::* LISTEN 1/sshd
- 使用局域网内的机器访问
[root@localhost ~]# curl -i http://172.17.28.4
HTTP/1.1 200 OK
Server: nginx/1.10.3
Kubernetes集群架构图
什么是Pod
Pod上方图中的绿色方块,包含一组容器和磁盘卷,同一个Pod里的容器共享同一个网络命名空间,并且Pod是短暂的不是持久化的。
为了使容器持久化,我们需要使用存储卷的概念(NFS之类)
什么是Label
Label是attach到Pod的一对键值对,用来传递用户定义的属性,主要是用来标记Pod
当容器重启时,IP会发生改变,这是需要使用Service来解决这个问题。
Kubernetes Service
Service是K8S最核心的概念,通过创建Service抽象层,通过Label找到Pod组,可以为一组具有相同功能的POD应用(应用组)提供统一的访问入口,并且将请求进行负载分发到后端的各个容器应用上。
创建Service访问入口,分为两种服务:
-
内部服务
-
外部服务
-
创建Service为内部服务,默认会启动一个随机VIP地址(虚拟IP),将30080端口映射至后端容器的端口(80),通过在局域网访问VIP:30080访问后端POD集群应用
-
(生产环境)创建Service为外部服务,默认会启动一个随机VIP地址(虚拟的),将30081端口映射至后端容器的端口(80),通过在局域网访问VIP:30081访问后端POD集群应用,默认会生成两个端口:(30081、随机PORT),通过NODE的IP另外一个随机端口可以在浏览器访问