mirror of
https://github.com/ben1234560/k8s_PaaS.git
synced 2025-04-22 04:25:52 +08:00
Update 第三章——k8s集群.md
This commit is contained in:
parent
811bda3ff4
commit
a742124998
@ -37,9 +37,9 @@ kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n
|
|||||||
21 ~]# kubectl exec -ti nginx-dp-5dfc689474-9zt9r /bin/bash -n kube-public
|
21 ~]# kubectl exec -ti nginx-dp-5dfc689474-9zt9r /bin/bash -n kube-public
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
> **kubectl get deploy:**这里的deploy是容器类型,deploy也是deployment
|
> **kubectl get deploy**:这里的deploy是容器类型,deploy也是deployment
|
||||||
>
|
>
|
||||||
> **kubectl exec:**进入容器
|
> **kubectl exec**:进入容器
|
||||||
>
|
>
|
||||||
> - -t:将标准输入控制台作为容器的控制台输入
|
> - -t:将标准输入控制台作为容器的控制台输入
|
||||||
> - -i:将控制台输入发送到容器
|
> - -i:将控制台输入发送到容器
|
||||||
@ -71,7 +71,7 @@ kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n
|
|||||||
~]# kubectl get all -n kube-public -o wide
|
~]# kubectl get all -n kube-public -o wide
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
> **kubectl expose:**暴露端口,后面的--port=80 指的是暴露80端口
|
> **kubectl expose**:暴露端口,后面的--port=80 指的是暴露80端口
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -161,9 +161,9 @@ spec:
|
|||||||
|
|
||||||
### 安装部署flanneld
|
### 安装部署flanneld
|
||||||
|
|
||||||
> **WHAT:**通过给每台宿主机分配一个子网的方式为容器提供虚拟网络(覆盖网络),该网络中的结点可以看作通过虚拟或逻辑链路而连接起来的
|
> **WHAT**:通过给每台宿主机分配一个子网的方式为容器提供虚拟网络(覆盖网络),该网络中的结点可以看作通过虚拟或逻辑链路而连接起来的
|
||||||
>
|
>
|
||||||
> **WHY:**我们生产上的集群宿主机/容器之间必须是互通的,因为只有互通才能形成集群,要是集群间的宿主机和容器都不互通,那就没有做集群的必要了
|
> **WHY**:我们生产上的集群宿主机/容器之间必须是互通的,因为只有互通才能形成集群,要是集群间的宿主机和容器都不互通,那就没有做集群的必要了
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# 你可以做如下尝试,21机器:
|
# 你可以做如下尝试,21机器:
|
||||||
@ -271,9 +271,9 @@ flannel原理:添加静态路由(前提条件,必须处在同一网关之
|
|||||||
|
|
||||||
### flannel之SNAT规则优化
|
### flannel之SNAT规则优化
|
||||||
|
|
||||||
> **WHAT:**使得容器之间的透明访问
|
> **WHAT**:使得容器之间的透明访问
|
||||||
>
|
>
|
||||||
> **WHY:**解决两宿主机容器之间的透明访问,如不进行优化,容器之间的访问,日志记录为宿主机的IP地址
|
> **WHY**:解决两宿主机容器之间的透明访问,如不进行优化,容器之间的访问,日志记录为宿主机的IP地址
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# 把nginx:curl拉下来,21机器
|
# 把nginx:curl拉下来,21机器
|
||||||
@ -315,7 +315,7 @@ etcd]# kubectl get pods -o wide
|
|||||||
etcd]# kubectl logs -f nginx-ds-drrkt
|
etcd]# kubectl logs -f nginx-ds-drrkt
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
> **kubectl logs -f:**查看Pod日志
|
> **kubectl logs -f**:查看Pod日志
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -333,10 +333,10 @@ etcd]# kubectl logs -f nginx-ds-drrkt
|
|||||||
> **iptables:**
|
> **iptables:**
|
||||||
>
|
>
|
||||||
> - `语法:iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]`
|
> - `语法:iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]`
|
||||||
> - **-A:**在规则链的末尾加入新规则
|
> - **-A**:在规则链的末尾加入新规则
|
||||||
> - **-s:**匹配来源地址IP/MASK,加叹号"!"表示除这个IP外
|
> - **-s**:匹配来源地址IP/MASK,加叹号"!"表示除这个IP外
|
||||||
> - **-o:**匹配从这块网卡流出的数据
|
> - **-o**:匹配从这块网卡流出的数据
|
||||||
> - **MASQUERADE:**动态伪装,能够自动的寻找外网地址并改为当前正确的外网IP地址
|
> - **MASQUERADE**:动态伪装,能够自动的寻找外网地址并改为当前正确的外网IP地址
|
||||||
> - 上面红框内的可以理解为:如果是172.7.21.0/24段的docker的ip,网络发包不从docker0桥设备出战的,就进行SNAT转换,而我们需要的是如果出网的地址是172.7.21.0/24或者172.7.0.0/16网络(这是docker的大网络),就不要做源地址NAT转换,因为我们集群内部需要坦诚相见,自己人不需要伪装。
|
> - 上面红框内的可以理解为:如果是172.7.21.0/24段的docker的ip,网络发包不从docker0桥设备出战的,就进行SNAT转换,而我们需要的是如果出网的地址是172.7.21.0/24或者172.7.0.0/16网络(这是docker的大网络),就不要做源地址NAT转换,因为我们集群内部需要坦诚相见,自己人不需要伪装。
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
@ -388,7 +388,7 @@ etcd]# kubectl logs -f nginx-ds-drrkt
|
|||||||
|
|
||||||
### 安装部署coredns(服务发现):
|
### 安装部署coredns(服务发现):
|
||||||
|
|
||||||
> **WHAT:**服务(应用)之间相互定位的过程
|
> **WHAT**:服务(应用)之间相互定位的过程
|
||||||
>
|
>
|
||||||
> **WHY:**
|
> **WHY:**
|
||||||
>
|
>
|
||||||
@ -439,7 +439,7 @@ k8s-yaml A 10.4.7.200
|
|||||||
# out:10.4.7.200
|
# out:10.4.7.200
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
> **dig -t A:**指的是找DNS里标记为A的相关记录,@用什么机器IP访问,+short是只返回IP
|
> **dig -t A**:指的是找DNS里标记为A的相关记录,@用什么机器IP访问,+short是只返回IP
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -464,7 +464,7 @@ k8s-yaml]# docker push !$
|
|||||||
|
|
||||||
> 这里我们需要注意的是,任何我用到的镜像都会推到我的本地私有仓库,原因前面也说了,1、是为了用的时候速度快保证不出现网络问题,2、保证版本是同样的版本,而不是突然被别人修改了
|
> 这里我们需要注意的是,任何我用到的镜像都会推到我的本地私有仓库,原因前面也说了,1、是为了用的时候速度快保证不出现网络问题,2、保证版本是同样的版本,而不是突然被别人修改了
|
||||||
>
|
>
|
||||||
> **docker push !$:**push上一个镜像的名字
|
> **docker push !$**:push上一个镜像的名字
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# 200机器,准备资源配置清单:
|
# 200机器,准备资源配置清单:
|
||||||
@ -633,7 +633,7 @@ spec:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
> **CLUSTER-IP为什么是192.168.0.2:**因为我们之前已经写死了这是我们dns的统一接入点
|
> **CLUSTER-IP为什么是192.168.0.2**:因为我们之前已经写死了这是我们dns的统一接入点
|
||||||
>
|
>
|
||||||
> 
|
> 
|
||||||
|
|
||||||
@ -646,7 +646,7 @@ spec:
|
|||||||
# out:192.168.81.37
|
# out:192.168.81.37
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
> **dig -t A:**指的是找DNS里标记为A的相关记录,@用什么机器IP访问,+short是只返回IP
|
> **dig -t A**:指的是找DNS里标记为A的相关记录,@用什么机器IP访问,+short是只返回IP
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -656,12 +656,12 @@ spec:
|
|||||||
|
|
||||||
### K8S的服务暴露ingress
|
### K8S的服务暴露ingress
|
||||||
|
|
||||||
> **WHAT:**K8S API的标准资源类型之一,也是核心资源,它是基于域名和URL路径,把用户的请求转发至指定Service资源的规则
|
> **WHAT**:K8S API的标准资源类型之一,也是核心资源,它是基于域名和URL路径,把用户的请求转发至指定Service资源的规则
|
||||||
>
|
>
|
||||||
> - 将集群外部的请求流量,转发至集群内部,从而实现“服务暴露”
|
> - 将集群外部的请求流量,转发至集群内部,从而实现“服务暴露”
|
||||||
> - nginx + go脚本
|
> - nginx + go脚本
|
||||||
>
|
>
|
||||||
> **WHY:**上面实现了服务在集群“内”被自动发现,那么需要使得服务在集群“外”被使用和访问,常规的两种方法:
|
> **WHY**:上面实现了服务在集群“内”被自动发现,那么需要使得服务在集群“外”被使用和访问,常规的两种方法:
|
||||||
>
|
>
|
||||||
> - 使用NodePort型的service
|
> - 使用NodePort型的service
|
||||||
> - 无法使用kube-proxy的ipvs模型,只能使用iptables模型
|
> - 无法使用kube-proxy的ipvs模型,只能使用iptables模型
|
||||||
@ -670,9 +670,9 @@ spec:
|
|||||||
|
|
||||||
##### 以trafiker为例
|
##### 以trafiker为例
|
||||||
|
|
||||||
> **WHAT:**为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。
|
> **WHAT**:为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。
|
||||||
>
|
>
|
||||||
> **WHY:**可以监听你的服务发现/基础架构组件的管理API,并且每当你的微服务被添加、移除、杀死或更新都会被感知,并且可以自动生成它们的配置文件
|
> **WHY**:可以监听你的服务发现/基础架构组件的管理API,并且每当你的微服务被添加、移除、杀死或更新都会被感知,并且可以自动生成它们的配置文件
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# 200机器,部署traefiker(ingress控制器)
|
# 200机器,部署traefiker(ingress控制器)
|
||||||
@ -861,9 +861,9 @@ traefik A 10.4.7.10
|
|||||||
~]# systemctl restart named
|
~]# systemctl restart named
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
> **nginx -t:**检查nginx.conf文件有没有语法错误
|
> **nginx -t**:检查nginx.conf文件有没有语法错误
|
||||||
>
|
>
|
||||||
> **nginx -s reload:**不需要重启nginx的热配置
|
> **nginx -s reload**:不需要重启nginx的热配置
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -883,3 +883,5 @@ traefik A 10.4.7.10
|
|||||||
|
|
||||||
接下来,我们就要开始安装部署K8S的周边生态,使其成为一个**真正的PaaS服务**
|
接下来,我们就要开始安装部署K8S的周边生态,使其成为一个**真正的PaaS服务**
|
||||||
|
|
||||||
|
<a href="https://github.com/ben1234560/k8s_PaaS/blob/master/%E5%8E%9F%E7%90%86%E5%8F%8A%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/Kubernetes%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.md#kubernetes%E6%8A%80%E8%83%BD%E5%9B%BE%E8%B0%B1">kubernetes技能图谱</a>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user