首页 > 代码库 > 通过Rancher部署并扩容Kubernetes集群基础篇二

通过Rancher部署并扩容Kubernetes集群基础篇二

接上一篇通过Rancher部署并扩容Kubernetes集群基础篇一


7. 使用ConfigMap配置redis

https://github.com/kubernetes/kubernetes.github.io/blob/master/docs/user-guide/configmap/redis/redis-config


redis-config

maxmemory 2mb    
maxmemory-policy allkeys-lru
# kubectl create configmap example-redis-config --from-file=./redis-config


  

# kubectl get configmap example-redis-config -o yaml
apiVersion: v1
data:
  redis-config: |
    maxmemory 2mb
    maxmemory-policy allkeys-lru
kind: ConfigMap
metadata:
  creationTimestamp: 2017-07-12T13:27:56Z
  name: example-redis-config
  namespace: default
  resourceVersion: "45707"
  selfLink: /api/v1/namespaces/default/configmaps/example-redis-config
  uid: eab522fd-6705-11e7-94da-02672b869d7f


 redis-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: redis
spec:
  containers:
  - name: redis
    image: kubernetes/redis:v1
    env:
    - name: MASTER
      value: "true"
    ports:
    - containerPort: 6379
    resources:
      limits:
        cpu: "0.1"
    volumeMounts:
    - mountPath: /redis-master-data
      name: data
    - mountPath: /redis-master
      name: config
  volumes:
    - name: data
      emptyDir: {}
    - name: config
      configMap:
        name: example-redis-config
        items:
        - key: redis-config
          path: redis.conf



 

# kubectl create -f redis-pod.yaml 
pod "redis" created

  

  


 

# kubectl exec -it redis redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "2097152"
127.0.0.1:6379> config get maxmemory-policy
1) "maxmemory-policy"
2) "allkeys-lru"
127.0.0.1:6379>

  

8. 使用kubectl命令管理kubernetes对象


  

# kubectl run nginx --image nginx
deployment "nginx" created


  或者

# kubectl create deployment nginx --image nginx

 

 

  使用kubectl create创建一个配置文件中定义的对象

#kubectl create -f nginx.yaml

  删除两个配置文件中定义的对象

  

#kubectl delete -f nginx.yaml -f redis.yaml

 

  更新对象


#kubectl replace -f nginx.yaml

 

  处理configs目录下所有的对象配置文件,创建新的对象或者打补丁现有的对象

  

#kubectl apply -f configs/

  递推处理子目录下的对象配置文件

#kubectl apply -R -f configs/

  9. 部署无状态应用

   

   9.1 使用deployment运行一个无状态应用

   

    deployment.yaml

    

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2 # tells deployment to run 2 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      # unlike pod-nginx.yaml, the name is not included in the meta data as a unique name is
      # generated from the deployment name
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80


    

kubectl create -f https://k8s.io/docs/tasks/run-application/deployment.yaml

 

  这里需要注意一下,rancher1.6.2部署的是kubernetes 1.5.4 


   这里的apiVersion要改一下,改成extensions/v1beta1

   kubernetes从1.6引入apps/v1beta1.Deployment 替代 extensions/v1beta1.Deployment

   

   显示这个deployment的信息

   

# kubectl describe deployment nginx-deployment

   

   















 10.部署有状态应用











本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1946903

通过Rancher部署并扩容Kubernetes集群基础篇二