一些基础概念
Deployment(部署)
Deployment处于master节点,master会选择合适的work节点创建Container replicates 可以定义部署几个节点
Container会被包含在Pod中
Pod 容器运行的最小单元
pod.yaml
部署ingress
官网拉取最新的yaml 文件部署
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
部署进k8s
kubectl apply -f deploy.yaml
部署namespace
创建命名空间 ingress-test
vim namespace.yaml
kind: Namespace
apiVersion: v1
metadata:
name: ingress-test
labels:
env: ingress-test
kubectl apply -f namespace.yaml
基于deployment方式部署tomcat
如果是单节点 请先去除master污点信息 即master节点不允许部署pod
deployment与pod部署方式的区别:
vim tomcat-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deploy
namespace: ingress-test
spec:
replicas: 2
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat:8.0.50-jre8-alpine
ports:
- containerPort: 8080
name: httpport
- containerPort: 8009
name: ajpport
kubectl apply -f tomcat-deployment.yaml
基于service 模式部署tomcat 绑定外部IP 提供访问服务
vim tomcat-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: tomcat-svc
namespace: testing
labels:
app: tomcat-svc
spec:
selector:
app: tomcat
ports:
- name: http
port: 80
targetPort: 8080
protocol: TCP
externalIPs:
- 192.168.217.129
kubectl apply -f tomcat-svc.yaml
访问方式 http://192.168.217.129 访问之前先 telnet 一下本机的80端口
登录k8s pod容器
kubectl exec tomcat-deploy-b9dd9bbdb-8sdxp -it -- /bin/bash
开放端口 firewalld
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
win10下 dns 一直解析以前的IP 只能ping通IP ping不通主机名
安装nslookup
yum install bind-utils
刷新域名
ipconfig/flushdns