kubernetes安装并启动mysql示例
- 安装kubernetes
# systemctl disable firewalld
# systemctl stop firewalld
# yum -y install etcd kubernetes
# vim /etc/sysconfig/docker
OPTIONS='--selinux-enabled=false --insecure-registry gcr.io'
# vim /etc/kubernetes/apiserver
删除--admission-control参数中ServiceAccount
# 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
- 创建pod时报错
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"
kubectl create -f mysql-rc.yaml
Error syncing pod a3b95e2a-1a9a-11e8-812e-fa163ee5df35, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request. details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)”
# yum install *rhsm* -y
依旧报错
原因是docker镜像拉取有问题
vim /etc/docker/daemon.json
```
```
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
替换为国内仓库
重启docker
# systemctl daemon-reload
# systemctl restart docker
问题解决,pod创建完成
3. 创建service
apiVersion: v1
kind: Service
metadata:
name: mysql1
spec:
type: NodePort
ports:
- port: 3307
nodePort: 32307
targetPort: 3306
selector:
app: mysql
Kubectl create -f mysql-svc.yaml
查看状态
# kubectl get po
NAME READY STATUS RESTARTS AGE
mysql-7hv93 1/1 Running 0 16m
# kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.254.0.1 <none> 443/TCP 18m
mysql1 10.254.167.91 <nodes> 3307:32307/TCP 16m
# lsof -i:32307
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kube-prox 30418 root 9u IPv6 1166802 0t0 TCP *:32307 (LISTEN)
连接主机ip加32307端口,访问mysql成功