前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >K8S: (一)CentOS 单机部署初探

K8S: (一)CentOS 单机部署初探

原创
作者头像
angelo
修改2019-10-18 14:52:27
4.5K0
修改2019-10-18 14:52:27
举报
文章被收录于专栏:CDN_New

说明:K8S单机安装可能遇到很多坑,网上目前的大部分教程已经不适用最新版了。踩过坑后与大家分享一下方法

一、环境准备

安装VirtualBox:
下载CentOS 7: http://mirrors.163.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-DVD-1908.torrent
安装CentOS 7: 如果机器支持,建议选择图形界面方便使用
修改软件源
代码语言:txt
复制
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

二、安装k8s修改配置

安装k8s,etcd,docker
代码语言:txt
复制
yum install -y etcd kubernetes

配置修改参考: https://lihaoquan.me/2017/2/25/create-kubernetes-single-node-mode.html

启动下列服务:
代码语言:txt
复制
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver.service
systemctl start kube-controller-manager.service
systemctl start kube-scheduler.service
systemctl start kubelet.service
systemctl start kube-proxy.service

如果遇到错误,则使用journalctl -xe查看错误信息,可能遇到需要设置防火墙,设置代理等问题

代码语言:txt
复制
journalctl -xe

三、拉取启动镜像

安装mysql
代码语言:txt
复制
docker pull mysql:5.7
创建文件: mysql-rc.yaml
代码语言:txt
复制
apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        ports: 
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"
kubectl命令手册: https://hardocs.com/d/kubernetes/136-Command%20Reference.html
代码语言:txt
复制
kubectl create -f mysql-rc.yaml

#使用mysql 5.7,直接pull mysql会拉到mysql 8版本,老的JDBC可能不兼容

查看mysql具体启动情况,也会包含错误信息

代码语言:txt
复制
kubectl describe pod mysql
image.png
image.png
下载安装证书
代码语言:txt
复制
wget [http://mirror.centos.org/centos/7/os/x86\_64/Packages/python-rhsm-certificates-1.19.10-1.el7\_4.x86\_64.rpm](http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm)
rpm2cpio python-rhsm-certificates-1.19.10-1.el7\_4.x86\_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
#rpm2cpio命令用于将rpm软件包转换为cpio格式的文件,cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。

删除并重新生成mysql的rc

代码语言:txt
复制
kubectl delete -f mysql-rc.yaml

kubectl get pods

kubectl create -f mysql-rc.yaml
image.png
image.png
代码语言:txt
复制
kubectl describe pod mysql
image.png
image.png
代码语言:txt
复制
kubectl get pods
image.png
image.png
创建文件:mysql-svc.yaml
代码语言:txt
复制
apiVersion: v1
kind: Service
metadata: 
  name: mysql
spec:
  ports:
    - port: 3306
  selector:
    app: mysql
代码语言:txt
复制
kubectl create -f mysql-svc.yaml
image.png
image.png
拉取并运行tomcat的demo镜像
代码语言:txt
复制
docker pull kubeguide/tomcat-app:v1
创建文件:myweb-rc.yaml
代码语言:txt
复制
apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 5
  selector:
    app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: docker.io/kubeguide/tomcat-app:v1
        ports: 
        - containerPort: 8080
        env:
        - name: MYSQL_SERVICE_HOST
          value: "10.254.65.209"    #<===这里的mysql地址需要填写service的mysql地址,执行kubectl get svc 查看
        - name: MYSQL_SERVICE_PORT
          value: "3306"
创建文件:myweb-svc.yaml
代码语言:txt
复制
apiVersion: v1
kind: Service
metadata: 
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30001   #外部端口映射
  selector:
    app: myweb
代码语言:txt
复制
kubectl create -f myweb-rc.yaml
kubectl create -f myweb-svc.yaml
image.png
image.png

四、外部访问与查看数据

访问:http://127.0.0.1:30001/demo/index.jsp 进行操作

image.png
image.png

可以进入容器查看mysql中已经有数据了

image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、环境准备
    • 安装VirtualBox:
      • 下载CentOS 7: http://mirrors.163.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-DVD-1908.torrent
        • 安装CentOS 7: 如果机器支持,建议选择图形界面方便使用
          • 修改软件源
          • 二、安装k8s修改配置
            • 安装k8s,etcd,docker
              • 启动下列服务:
              • 三、拉取启动镜像
                • 安装mysql
                  • 创建文件: mysql-rc.yaml
                    • kubectl命令手册: https://hardocs.com/d/kubernetes/136-Command%20Reference.html
                      • 下载安装证书
                        • 创建文件:mysql-svc.yaml
                          • 拉取并运行tomcat的demo镜像
                            • 创建文件:myweb-rc.yaml
                              • 创建文件:myweb-svc.yaml
                              • 四、外部访问与查看数据
                              相关产品与服务
                              云数据库 SQL Server
                              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档