目录
一、Kubernetes安装
1.环境
VMware+CentOS7
2.安装步骤
1).关闭系统防火墙
systemctl disable firewalld
systemctl stop firewalld
2).安装etcd和Kubernetes(自动附带安装Docker)
(需要切换到root用户给予权限))
yum install -y etcd kubernetes
3).修改配置文件
vim /etc/sysconfig/docker
OPTIONS='--selinux-enabled=false ...
vim /etc/containers/registries.conf
[registries.insecure]
registries = ['gcr.io']
4).修改 /etc/kubernetes/apiserver 文件
vim /etc/kubernetes/apiserver
修改KUBE_ADMISSION_CONTROL的内容为:
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
5).依次启动下列服务
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
至此环境已搭建完成。
二、学习和使用
1).准备一个如下的配置文件mysql-rc.yaml
(文件地址任意)
touch mysql-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"
(注意:和- 后面要有空格)
2).启动服务
kubectl create -f mysql-rc.yaml
3).查询RC列表
kubectl get rc
READY=0,没有正常启动,需要定位原因。
kubectl describe pod mysql
- 找不到
/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt
文件。 - 拉取镜像
registry.access.redhat.com/rhel7/pod-infrastructure:latest
失败。
4).问题解决方案
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
rpm -ivh python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
如果网络连接失败,可以在主机浏览器打开网址下载,通过Xftp传入虚拟机。
如果提示python-rhsm-certificates-1.19.10-1.el7_4.x86_64 被已安装的 subscription-manager-rhsm-certificates-1.20.11-1.el7.centos.x86_64 取代,就要执行下面步骤:
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm |cpio -iv --to-stdout ./etc/rhsm/ca/redhatuep.pem > /etc/rhsm/ca/redhat-uep.pem
配置docker加速器:
vi /etc/docker/daemon.json
{undefined
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
重新启动之前的RC:
# 删除之前启动的RC
kubectl delete-f mysql-rc.yaml
# 重新启动新的RC
kubectl create -f mysql-rc.yaml
kubectl get pod
pod已经正常启动。
可以使用docker ps
查看目前启动的容器:
目前启动了两个容器:1个是MySQL容器,还有一个是Kubenetes自带的k8s_POD相关的容器(用于管理POD)。