赤色烙印 发表于 2018-1-5 12:55:18

kubernetes学习一(安装以及创建第一个rc与pod)

准备工作
  首先准备Kubernets的安装,这里我使用的是centos7
  
Kubernetes v1.5.2
  
Docker version 1.12.6, build 85d7426/1.12.6

安装

yum install docker etcd kubernetes -y

修改配置文件
  

vim /etc/kubernetes/apiserver  
将KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRange
  

  r,SecurityContextDeny,ServiceAccount,ResourceQuota"中的ServiceAccount
  不然后期创建rc与pod的时候会出现pod无法创建但是rc能创建

启动服务
  

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

创建rc
  创建rc文件,语法为yaml格式,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"
  

  yaml定义文件中kind属性,用来表明此资源对象的类型,比如这里的值为“ReplicationController”表示这是一个RC;
  
spec一节中是RC的相关属性定义,比如spec.selecror是RC的Pod标签选择器,即监控和管理拥有这些标签的pod实,
  
确保当前集群上始终有且仅有replicas个pod实例在运行,这里我们设置为1表示只能运行一个mysql pod实例。当集群
  
中运行的Pod的数量小于replicas时,RC会根据spec.template.metadata.labels指定了该Pod标签,需要特别注意的是:
  
这里的labels必须匹配之前的spec.selector,否则此RC每次创建了一个无法匹配label的pod,就会不停的尝试新的pod,
  
最终陷入循环。

执行Rc
  

kubectl create -f mysql-rc.yaml  

  查看
  
kubectl get rc
  
kubectl get pods

错误整理
  在创建rc与pod时出现迟迟无发运行pods状态如下:
  
https://images2017.cnblogs.com/blog/1267141/201711/1267141-20171105162620545-399380638.png
  
可以使用kubectl describe pods Pod_Name来查看是什么原因。
  
其中我遇到错误为:
  
https://images2017.cnblogs.com/blog/1267141/201711/1267141-20171105162818701-995410296.png
  
需要安装rhsmyum install *rhsm*
  
删除rc与pod kubectl delete -f XXX.yaml 或者kubectl delete pods pod_name
  
详细使用方法查看 kubectl delete --help
  
之后便可已正常运行。
  需要注意的是在拉取镜像的时候因为GWF所已会有点慢
页: [1]
查看完整版本: kubernetes学习一(安装以及创建第一个rc与pod)