K8s权威指南学习

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 第一章 k8s入门(简单的Java web项目) 环境: VMware Workstation在本机虚拟一个64位的Centos7虚拟机 环境准备 关闭防火墙 systemctl disable firewalld systemctl stop firewalld 安装etcd和Kuber.

第一章 k8s入门(简单的Java web项目) 

环境: VMware Workstation在本机虚拟一个64位的Centos7虚拟机

环境准备

  1. 关闭防火墙

    systemctl disable firewalld
    systemctl stop firewalld
    
  2. 安装etcd和Kubernetes软件(会自动安装Docker软件)

    yum install -y etcd kubernetes
    
  3. 按顺序启动所有服务

    systemctl start etcd
    systemctl start docker
    systemctl start kube-apiserver
    systemctl start kube-controller-manager
    systemctl start kube-scheduler
    systemctl start kubelet
    systemctl start kube-proxy

启动MySQL服务

  1. MySQL镜像

    docker pull daocloud.io/library/mysql:latest
    
  2. 构建Mysql RC定义文件(可以使用vim创建),命名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" 
  3. 发布到kubernetes集群中,在master节点执行命令(注:此时可能出现问题,如:问题1:no resource found,问题2:status的状态是ContainerCreating而不是running,如果出现此问题请看关于创建rc和pod出现的问问题

    $ kubectl create -f mysql-rc.yaml 
    replicationcontroller "mysql" created
    

    查看创建的rc

    $ kubectl get rc 
    NAME DESIRED CURRENT READY AGE 
    mysql 1 1 1 14s
    

    查看pod创建情况

    $ kubectl get pods 
    NAME READY STATUS RESTARTS AGE 
    mysql-srd1m 1/1 Running 0 41s
    
  4. 创建一个与之关联的k8s Service-Mysql的定义文件(文件名为mysql-svc.yaml),内容如下:

    apiVersion: v1
    kind: Service
    metadata:
    name: mysql
    spec:
    ports:
    - port: 3306
    selector:
    app: mysql
    

    运行kubectl命令,创建service

    kubectl create -f mysql-svc.yaml
    

    查看刚刚创建的service

    $ kubectl get svc
    NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    kubernetes 10.254.0.1 <none> 443/TCP 8d
    mysql 10.254.55.41 <none> 3306/TCP 13s

启动Tomcat服务

  1. 拉取Tomcat镜像
    	docker pull kubeguide/tomcat-app:v2
    
  2. 构建Tomcat RC定义文件,命名myweb-rc.yaml 内容如下:
    		apiVersion: v1
    		kind: ReplicationController
    		metadata:
    		 name: myweb
    		spec:
    		 replicas: 2
    		 selector:
    			app: myweb
    		 template:
    			metadata:
    			 labels:
    				app: myweb
    			spec:
    			 containers:
    				- name: myweb
    				 image: kubeguide/tomcat-app:v1
    				 ports:
    				 - containerPort: 8080 
    完成rc创建和验证
    	$ kubectl create -f myweb-rc.yaml 
    	replicationcontroller "myweb" created
    	$ kubectl get rc 
    	NAME DESIRED CURRENT READY AGE
    	mysql 1 1 1 23h
    	myweb 2 2 2 12s
    	$ kubectl get pods
    	NAME READY STATUS RESTARTS AGE
    	mysql-srd1m 1/1 Running 1 23h
    	myweb-fqlvz 1/1 Running 0 40s
    	myweb-ggrlg 1/1 Running 0 40s
    
  3. 创建对应的Service,文件名(myweb-svc.yaml),内容如下
    	apiVersion: v1
    	kind: Service
    	metadata: 
    	name: myweb
    	spec:
    	type: NodePort
    	ports:
    	- port: 8080
    	nodePort: 30001
    	selector:
    	app: myweb
    
    创建并验证
    	$ kubectl create -f myweb-svc.yaml 
    	service "myweb" created
    	$ kubectl get services
    	NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    	kubernetes 10.254.0.1 <none> 443/TCP 8d
    	mysql 10.254.55.41 <none> 3306/TCP 42m
    	myweb 10.254.237.187 <nodes> 8080:30001/TCP 21s

本文转移开源中国-K8s权威指南学习

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
Kubernetes 容器
k8s学习-CKS真题-日志审计 log audit
k8s学习-CKS真题-日志审计 log audit
76 0
|
4月前
|
Kubernetes 安全 Ubuntu
k8s学习-CKS真题-Dockerfile和deployment优化
k8s学习-CKS真题-Dockerfile和deployment优化
72 0
|
4月前
|
Kubernetes 容器
k8s学习-CKS真题-ImagePolicyWebhook容器镜像扫描
k8s学习-CKS真题-ImagePolicyWebhook容器镜像扫描
110 0
|
3月前
|
Kubernetes iOS开发 Docker
为什么你应该学习 Docker 🐋 和 Kubernetes ☸️?
如果您是一名开发人员,我相信您一定听说过这句话:“它可以在我的机器上运行”。当我们的代码在您的计算机上运行但在朋友的计算机上表现不佳时,这是令人心碎的。
27 0
|
4月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|持久化存储pv,pvc和StorageClass的学习
云原生|kubernetes|持久化存储pv,pvc和StorageClass的学习
123 0
|
4月前
|
存储 Kubernetes 关系型数据库
kubernetes学习之持久化存储StorageClass(4---nfs存储服务)
kubernetes学习之持久化存储StorageClass(4---nfs存储服务)
47 0
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|关于configMap的一些学习
云原生|kubernetes|关于configMap的一些学习
49 1
|
4月前
|
Kubernetes Cloud Native 安全
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
84 0
|
4月前
|
Kubernetes Cloud Native API
猿创征文|云原生|kubernetes学习之RBAC(六)
猿创征文|云原生|kubernetes学习之RBAC(六)
33 0
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】kubernetes学习之资源(对象)控制器概述---概念和实战(五)
【云原生】kubernetes学习之资源(对象)控制器概述---概念和实战(五)
22 0

推荐镜像

更多