所有的资源都清理。
因为 Pod 访问地址不固定,他们之间是通过 vIP(clusterIP)。
实战练习
# tomcat-svc.yml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30008
selector:
app: myweb
# tomcat-rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 1
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: 172.16.156.128:5000/tomcat-app:v2
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: 'mysql' # 改为 clusterIP 的地址,就是 svc/mysql 的地址
- name: MYSQL_SERVICE_PORT
value: '3306'
# mysql-svc.yml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
targetPort: 3306
selector:
app: mysql
# mysql-rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: mysql
spec:
replicas: 1
selector:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: 172.16.156.128/mysql:5.7
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: '123456'
kubectl create -f mysql-rc.yml
kubectl create -f mysql-svc.yml
kubectl create -f tomcat-rc.yml
kubectl create -f tomcat-svc.yml
获取信息,当前因为没有镜像,所以启动不起来
[root@k8s-master ~]# kubectl get all
# ...
NAME READY STATUS RESTARTS AGE
po/mysql-18wj3 0/1 ImagePullBackOff 0 9h
[root@k8s-master ~]#
从网络上找到镜像并push到自己的私有仓库。
docker search mysql:5.7
docker pull docker.io/liyupei/mysql:5.7 # 找到一个进行拉取
docker tag 98455b9624a9 172.16.156.128:5000/mysql:5.7
docker push 172.16.156.128:5000/mysql:5.7
docker search tomcat # 网上搜索并没有 tomcat-app:v2 的镜像dock
docker pull docker.io/tomcat
docker tag docker.io/tomcat 172.16.156.128:5000/tomcat-app:v2
docker push 172.16.156.128:5000/tomcat-app:v2
# 通过 kubectl edit xx xxx 来修改 rc 和 pod 中的镜像地址
所有的项目修改成功启动后是这样的结果。
启动成功此时打开网页 172.16.156.128:30008 地址,可以正常访问到 tomcat 的 404 页面,说明成功了。但因为服务不是教程中一摸一样的,所以访问不成功。
# 扩展 myweb 个数
kubectl scale rc myweb --replicas=3
网友评论