分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

记录《kubernetes权威指南》中单机应用栈例子(1)

发布时间:2023-09-06 01:52责任编辑:彭小芳关键词:kubernetes
单机部署一个mysql+tomcat应用栈

前期准备工作

使用centos7虚拟机

  • 关闭centos防火墙
    systemctl stop firewalldsystemctl disable firewalld
  • 安装etcd及kubernetes软件
    yum update -yyum install etcd kubernetes -y
  • 安装好的各软件版本如下
kubectl: v1.5.2docker: 1.13.1etcd: 3.2.15
  • 修复配置文件
    • docker配置文件/etc/sysconfig/docker
修改为OPTIONS=‘--selinux-enabled=false‘
    • kubernetes apiserver配置文件 /etc/kubernetes/apiserver
KUBE_ADMISSION_CONTROL参数中删除ServiceAccount
  • 使用daocloud加速器

注册daocloud用户后,运行daocloud加速器脚本

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://41379ba5.m.daocloud.io# 由于网络原因,最好使用加速器。# 如果使用daocloud后,出现镜像下载问题,可以考虑替换为阿里云加速器# 实际上就是编辑了/etc/docker/daemon.json文件# 如果docker镜像下载出现问题,优先考虑网络问题。
  • 启动服务
systemctl start etcdsystemctl start docker systemctl start kube-apiserversystemctl start kube-controller-managersystemctl start kube-schedulersystemctl start kubeletsystemctl start kube-proxy
  • 下载镜像
# mysql镜像docker pull daocloud.io/library/mysql:latest# tomcat镜像docker pull kubeguide/tomcat-app:v2[root@host1 docker]# docker imagesREPOSITORY ??????????????????????TAG ????????????????IMAGE ID ???????????CREATED ????????????SIZEdaocloud.io/library/mysql ???????latest ?????????????80bbf861367a ???????3 days ago ?????????445 MBdocker.io/kubeguide/tomcat-app ??v2 ?????????????????00beaa1d956d ???????21 months ago ??????358 MB

启用mysql容器服务

定义rc模板,命名为mysql-rc.yaml

apiVersion: v1kind: ReplicationControllermetadata: ?name: mysqlspec: ?replicas: 1 ?#定义RC标签选择 ?selector: ???app: mysql ?#定义Pod模板 ?template: ???metadata: ?????labels: ????????app: mysql ???spec: ?????#Pod内容器定义 ?????containers: ???????- name: mysql ?????????# image需要指定docker images输出中的那个mysql镜像 ?????????image: ?daocloud.io/library/mysql:latest ?????????ports: ??????????- containerPort: 3306 ?????????env: ?????????- name: MYSQL_ROOT_PASSWORD ???????????value: "123456"

注意image选择,是与书中不一致的,因为我们下载的mysql镜像是daocloud仓库中的镜像

创建好文件后,发布到kubernetes集群中

[root@host1 kube-test]# kubectl create -f mysql-rc.yamlreplicationcontroller "mysql" created[root@host1 kube-test]# kubectl get rcNAME ?????DESIRED ??CURRENT ??READY ????AGEmysql ????1 ????????1 ????????0 ????????10s[root@host1 kube-test]# kubectl get podsNAME ?????????READY ????STATUS ?????????????RESTARTS ??AGEmysql-nrcvt ??0/1 ??????ContainerCreating ??0 ?????????27s

这个ContainerCreating状态是异常状态,会一直持续,不会进入到running状态

查看pods状态时,

kubectl describe pods mysql-nrcvt............ ?1m ???5s ?5 ??{kubelet 127.0.0.1} ????Warning FailedSync ?Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"registry.access.redhat.com/rhel7/pod-infrastructure:latest\""

发现是无法下载这个镜像,于是我手动pull这个镜像,发现如下报错:

[root@host1 kube-test]# docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latestTrying to pull repository registry.access.redhat.com/rhel7/pod-infrastructure ... open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory

搜索这个报错,发现可以通过yum install rhsm -y解决
运行该命令后,删除掉之前部署的rc,

[root@host1 kube-test]# kubectl delete rc mysqlreplicationcontroller "mysql" deleted[root@host1 kube-test]# kubectl get podsNo resources found.

重新部署

[root@host1 kube-test]# kubectl create -f mysql-rc.yamlreplicationcontroller "mysql" created[root@host1 kube-test]# kubectl get rcNAME ?????DESIRED ??CURRENT ??READY ????AGEmysql ????1 ????????1 ????????1 ????????7s[root@host1 kube-test]# kubectl get pods NAME ?????????READY ????STATUS ???RESTARTS ??AGEmysql-nbwvp ??1/1 ??????Running ??0 ?????????13s

mysql正常运行了。
查看正在运行的docker,发现有两个

[root@host1 kube-test]# docker ps CONTAINER ID ???????IMAGE ???????????????????????????????????????????????????????COMMAND ?????????????????CREATED ?????????????STATUS ?????????????PORTS ??????????????NAMESf58905ddee64 ???????daocloud.io/library/mysql:latest ????????????????????????????"docker-entrypoint..." ??About a minute ago ??Up About a minute ??????????????????????k8s_mysql.9ef925be_mysql-nbwvp_default_30da097b-4ee8-11e8-a311-000c29f71e04_7ac92ba799382a3dcbf0 ???????registry.access.redhat.com/rhel7/pod-infrastructure:latest ??"/usr/bin/pod" ??????????About a minute ago ??Up About a minute ??????????????????????k8s_POD.1d520ba5_mysql-nbwvp_default_30da097b-4ee8-11e8-a311-000c29f71e04_aad8e14a

记录《kubernetes权威指南》中单机应用栈例子(1)

原文地址:http://blog.51cto.com/duf0913/2112491

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved