kubernetes单机安装

准备工作

首先准备Kubernets的安装,这里我使用的是virtualbox上安装centos7,
Kubernetes v1.5.2 Docker version 1.12.6

安装

yum install docker etcd kubernetes -y

修改配置文件

vim /etc/kubernetes/apiserver
KUBE_ADMISSION_CONTROL改为下面的值
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRange

不然后期创建rc与pod的时候会出现pod无法创建但是rc能创建

镜像加速器 参考阿里

安装/升级你的Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
如何配置镜像加速器
针对Docker客户端版本大于1.10.0的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["***.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

启动服务

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

创建mysql 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,最终陷入循环。

执行创建 mysql Rc

kubectl create -f mysql-rc.yaml

查看kubectl get rc kubectl get pods

错误整理
在创建rc与pod时出现迟迟无发运行pods状态如下:
image
image

可以使用kubectl describe pods Pod_Name来查看是什么原因。其中我遇到错误为:

需要安装rhsmyum install *rhsm*

删除rc与pod kubectl delete -f XXX.yaml 或者 kubectl delete pods pod_name

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

创建相关联的mysql service

准备工作

准备好k8s一中的rc与pods

定义services文件

vim mysql-svc.yaml

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

创建mysql service

kubectl create -f mysql-svc.yaml

查看svc
kubectl get svc

创建myweb rc

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

执行创建 myweb Rc

kubectl create -f myweb-rc.yaml

查看kubectl get rc kubectl get pods

查看kubectl get rc kubectl get pods

创建相关联的myweb service

准备工作

准备好k8s一中的rc与pods

定义services文件

vim myweb-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports: 
    - port: 8080
      nodePort: 30001
  selector:
    app: myweb

创建myweb service

kubectl create -f myweb-svc.yaml

查看svc
kubectl get svc

安装成功

察看pod状态

image

访问web页面

image

调节web容器的数量

察看所有rc kubectl get rc

调节myweb的数量 kubectl scale rc myweb --replicas=5

察看结果 kubectl get pod -o wide
如果, myweb的数量从2变成了5

image

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值