单机版Kubernetes集群(一)


#!/bin/bash# #FileName: iptables_stop.sh
#Date:
#Author: LiLe
#Contact: @qq.com
#Version: V1.
#Description: Centos7 stop firewalld in grain install(){
yum -y install firewalld
yum -y install iptables-services
} stop_service(){
systemctl stop firewalld
systemctl stop iptables
} starting_stop(){
systemctl disable firewalld.service
systemctl disable iptables.service
} main(){
install
stop_service
starting_stop
} main
yum -y install etcd kubernetes


systemctl start etcd master
systemctl start docker node
systemctl start kube-apiserver master
systemctl start kube-controller-manager master
systemctl start kube-scheduler master
systemctl start kubelet node
systemctl start kube-proxy node
apiVersion: v1
kind: ReplicationController #表明此资源对象的内型,"ReplicationController表明这是一个RC"
metadata:
name: mysql #RC的名称,全局唯一
spec: #spec是RC的相关属性定义
replicas: #副本期待数量
selector: #是RC的Pod标签选择器,监控和管理拥有这些标签的Pod实例,确保当前集群上始终有且仅有replicas个Pod实例在运行,这里设置的replicas=1表明只能运行一个Mysql Pod实例,当集群中运行的Pod数量小于replicas时,RC会根据spec.template一节中定义的Pod模板来生成一个新的Pod实例,spec.template.metadata.labels指定了该Pod的标签,,需要注意的是这里的labels必须匹配之前的spec.selector,否则此RC每次创建了一个无法匹配Label的Pod,就会不停地尝试创建新的Pod.
app: mysql #符合目标的Pod拥有此标签
template: #根据此模板创建Pod的副本(实例)
metadata:
labels:
app: mysql #Pod副本拥有的标签,对应RC的Selector
spec:
containers: #Pod内容器的定义部分
- name: mysql #容器的名称
image: mysql #容器的镜像
ports: #容器暴露的端口
- containerPort:
env: #注入到容器内的环境变量
- name: MYSQL_ROOT_PASSWORD
value: ""
kubectl create -f mysql-rc.yaml
kubectl get rc


kubectl get pods


kubectl describe pod mysql






) wget 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.-.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

ln -s /usr/libexec/docker/docker-runc-current /usr/libexec/docker/docker-runc
解决完上面的两个问题后,就可以看到status处于Running状态了




apiVersion: v1
kind: Service #表明是Kubernetes Service
metadata:
name: mysql #Service的全局唯一名称;Service 的服务名
spec:
ports:
- port: #Service提供服务的端口号
selector:
app: mysql #service对应的Pod拥有这里定义的标签; 确定了哪些Pod副本(实例)对应到本服务
kubectl create -f mysql-svc.yaml
kubectl get svc


apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas:
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name : myweb
image: kubeguide/tomcat-app:v1
ports:
- containerPort:
env:
- name: MYSQL_SERVICE_HOST
value: 'mysql'
- name: MYSQL_SERVICE_PORT
value: ''
kubectl create -f myweb-rc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort #表明此Service开启了NodePort方式的外网访问模式
ports:
- port:
nodePort: #在集群之外,可以通过30001这个端口访问myweb,对应到8080的虚端口上。
selector:
app: myweb
kubectl create -f myweb-svc.yaml




kubectl delete rc myweb
kubectl delete pods --grace-period= --force --all


单机版Kubernetes集群(一)的更多相关文章
- 快速安装与配置kubernetes集群搭
Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案.这个方案尽然很新,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果.确切地说,kubernete ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
- Kubernetes集群搭建过程中遇到的问题
1. 创建Nginx Pod过程中报如下错误: #kubectlcreate -f nginx-pod.yaml Error from server: error when creating &quo ...
- Kubernetes集群初探
上文我们在一台虚机上演示了Kubernetes基于redis和docker的guestbook留言簿案例,本文我们将通过配置Kubernetes集群的方式继续深入研究.集群组件安装如下配置. IP N ...
- kubernetes集群部署
鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...
- 在Openstack上创建并访问Kubernetes集群
第一部分:创建集群 在Openstack部署Kubernetes集群运行Nginx容器的步骤,其中包括: 利用Murano部署Kubernetes集群 配置Openstack的安全性使Kubernet ...
- Centos7上安装Kubernetes集群部署docker
一.安装前准备1.操作系统详情需要三台主机,都最小化安装 centos7.3,并update到最新 [root@master ~]# (Core) 角色 主机名 IPMaster master 192 ...
- 和我一步步部署 kubernetes 集群
和我一步步部署 kubernetes 集群 本系列文档介绍使用二进制部署最新 kubernetes v1.6.1 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群: 在部署的过程中, ...
- 在Kubernetes集群中使用calico做网络驱动的配置方法
参考calico官网:http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm ...
随机推荐
- PostgreSQL 问题总结
一.postgresql - server don't listen(服务器未监听) 1)检测是否开启PostgreSQL服务,没开启的话,需要自己手动建立PostgreSQL服务. 2)查看543 ...
- JavaScript的局部变量和全局变量小知识
(了解一下,避免初学者犯错,但下面定义全局变量的做法并不推荐,只是让你们知道这是怎么一回事) 如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如: function test ...
- asp类型转换函数汇总 转贴
abs(number) 返回绝对值. array(arglist) 创建一个数组. asc(string) 返回字符串第一个字符的ansi码. atn(number) 返回反正弦值. cbool (e ...
- [Kafka] [All about it]
Overview 设计目标: 以O(1) 常数级时间复杂度的访问性能,提供消息持久化能力. 高吞吐率. 支持 kafka server 间的消息分区,及分布式消费,同时保证每个partition内部的 ...
- Linux 环境下umount, 报 device is busy 的问题分析与解决方法
在Linux环境中,有时候需要挂载外部目录或硬盘等,但当想umount时,却提示类似“umount:/home/oracle-server/backup:device is busy”这种提示. 出现 ...
- IPC 简说
IPC(inter-process communication)进程间通信 多进程分为两种情况 1. 同一个应用,使用android:process属性启动的四大组件 2. 多应用 通过android ...
- Verdi 看波形常用快捷操作
Verdi看波形的基本操作小结: 快捷键:(大写字母=Shift+小写) g get, signlas添加信号,显示波形n next, Search Forward选定信号按指定的值(上升 ...
- UITextField属性及方法说明
/初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )] //设置 ...
- Linux 驱动——Button驱动3(poll机制)
button_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/f ...
- Centos7.5系统 SSH升级到7.9
SSH7.9安装 #!/bin/bash#删除旧版ssh包 危险操作,不删除也可以安装,建议跳过此操作.#rpm -e `rpm -qa | grep openssh` #安装zlib依赖包wget ...