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状态如下:
1267141-20171105162620545-399380638.png
可以使用kubectl describe pods Pod_Name来查看是什么原因。
其中我遇到错误为:
kubernetes学习一(安装以及创建第一个rc与pod)_第1张图片
需要安装rhsmyum install *rhsm*
删除rc与pod kubectl delete -f XXX.yaml 或者kubectl delete pods pod_name
详细使用方法查看 kubectl delete --help
之后便可已正常运行。

需要注意的是在拉取镜像的时候因为GWF所已会有点慢

转载于:https://www.cnblogs.com/Paavo/p/7784512.html

你可能感兴趣的:(kubernetes学习一(安装以及创建第一个rc与pod))