k8s集群搭建-集群搭建结果
·
一、集群状态测试
目标:接下来在kubernetes集群中部署一个nginx程序,测试下集群是否在正常工作。
# 部署nginx [root@master ~]# kubectl create deployment nginx --image=nginx # 暴露端口(可以让集群之外的浏览器来访问它) [root@master ~]# kubectl expose deployment nginx --port=80 --type=NodePort # 查看服务状态(pod是k8s的最小单元) [root@master ~]# kubectl get pod [root@master ~]# kubectl get service #最后在电脑上 访问部署的nginx服务 http://192.168.28.134:30049

二、mysql测试
目标:接下来在kubernetes集群中部署一个mysql程序,测试下集群是否在正常工作。
在一个linux的目录中,创建mysql-rc.yaml文件
cd /home touch mysql-rc.yaml vi mysql-rc.yaml
mysql-rc.yaml文件内容
apiVersion: v1 kind: ReplicationController metadata: name: mysql spec: replicas: 1 selector: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "123456"
将mysql-rc.yaml描述的服务加入k8s集群
kubectl apply -f mysql-rc.yaml # 查看刚刚创建的rc kubectl get rc
创建一个Kubernetes Service ——MySQL的定义文件(名为mysql-svc.yaml)
apiVersion: v1 kind: Service metadata: name: mysql spec: type: NodePort ports: - port: 3306 nodePort: 30060 selector: app: mysql
运行kubectl命令,创建Service
kubectl create -f mysql-svc.yaml # 运行kubectl命令查看刚刚创建的Service: kubectl get svc
如果碰到public key retrieval is not allowed的错误,修改mysql驱动参数
allowPublicKeyRetrieval = true
三、tomcat测试
创建一个tomcat的程序
cd /root/user
vi tomcat-deploy.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: tomcat-deploy spec: replicas: 1 selector: matchLabels: app: tomcat9 template: metadata: labels: app: tomcat9 spec: containers: - name: mytomcat image: tomcat:9.0 ports: - containerPort: 8080
kubectl apply -f tomcat-deploy.yaml #查看刚刚创建的deployment kubectl get deployment
暴露端口给外部
cd /root/user
vi tomcat-svc.yaml
apiVersion: v1 kind: Service metadata: name: tomcatservice spec: type: NodePort ports: - port: 8080 targetPort: 8080 nodePort: 30010 selector: app: tomcat9
kubectl apply -f tomcat-svc.yaml #查看刚刚创建的service kubectl get service
通过主机浏览器访问http://masterip:30010端口,发现能访问到tomcat但是404
#查看所有的pod列表,定位到真正的tomcat的pod kubectl get pod -o wide #用bash进入tomcat的pod kubectl exec tomcat-deploy-b9dd9bbdb-8sdxp -it -- /bin/bash #进入bash后,进入/usr/local/tomcat目录 cd /usr/local/tomcat #复制所有.dist内容到webapps下 cp -R webapps.dist/. webapps/

四、redis测试
创建redis.conf配置文件
复制以下的md笔记,建议把带有#的内容全部去除,再copy内容(否则比较容易报错)
#bind 0.0.0.0 #redis可供外部进行访问 protected-mode no #redis可供外部进行访问 port 6379 #redis端口,一般来说6379端口 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no pidfile /var/run/redis_6379.pid loglevel notice logfile "/tmp/redis.log" #redis运行后的日志文件名字、所在文件夹 databases 16 always-show-logo no stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb #redis的持久化相关的参数 dir /data #redis的持久化相关的参数 appendonly yes #redis的持久化相关的参数 appendfilename "appendonly.aof" #redis的持久化相关的参数
创建一个deployment
-
deploy-redis.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: redis-single
name: redis-single
namespace: test
spec:
replicas: 1
selector:
matchLabels:
app: redis-single
template:
metadata:
labels:
app: redis-single
spec:
containers:
- command:
- sh
- -c
- redis-server "/mnt/redis.conf"
env:
- name: TZ
value: Asia/Shanghai
- name: LANG
value: C.UTF-8
image: redis:5.0.4-alpine
name: redis-single
ports:
- containerPort: 6379
name: web
protocol: TCP
volumeMounts:
- mountPath: /mnt
name: redis-conf
readOnly: true
volumes:
- configMap:
defaultMode: 420
name: redis-conf
name: redis-conf
执行这个deploy-redis.yaml
# 创建一条test名称空间下的,配置文件 kubectl create cm redis-conf --from-file=redis.conf -n test # 以该yaml文件来创建一个deployment资源 kubectl apply -f deploy-redis.yaml # 罗列test名称空间下的pod列表 kubectl get pod -n test # 进入容器内部,准备执行redis-cli命令(需要替换掉pod名称 kubectl exec redis-single-7bfc5dfc75-5vkwr -n test -it -c redis-single /bin/sh
暴露redis端口给k8s集群外部
以下命令在master节点上执行
# 暴露一个service,的类别是NodePort,暴露出一个自定义的端口,可以通过k8s集群外部来访问 kubectl expose deploy redis-single --port 6379 --type=NodePort -n test # 查看test名称空间下暴露的service列表 kubectl get svc -n test
以下命令在win机器上,提起下载好的redis-cli.exe所在的目录执行
cmd命令行窗格中,执行 # 在k8s集群外部,用redis-cli执行 redis-cli -h 192.168.28.134 -p 32712
更多推荐

所有评论(0)