目录
实验环境上一篇,我们已经把kubernetes的基础环境配置好了,现在我们来进行使用
centos 7虚拟机 | 基本配置 |
master | Nat网卡 |
node | Nat网卡 |
检查基础配置
各节点准备好
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 3d23h v1.18.2
node Ready <none> 3d23h v1.18.2
各组件也运行成功
[root@master ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-675d8749dd-j7x8j 1/1 Running 2 3d23h
calico-node-6zxmb 1/1 Running 2 3d23h
calico-node-p4c4x 1/1 Running 2 3d23h
coredns-546565776c-sftfg 1/1 Running 2 3d23h
coredns-546565776c-twwjm 1/1 Running 2 3d23h
etcd-master 1/1 Running 20 3d23h
kube-apiserver-master 1/1 Running 20 3d23h
kube-controller-manager-master 1/1 Running 21 3d23h
kube-proxy-fqcn8 1/1 Running 2 3d23h
kube-proxy-j9nwd 1/1 Running 2 3d23h
kube-scheduler-master 1/1 Running 4 3d23h
nginx容器
记不住命令可以生成模板自行更改
[root@master ~]# kubectl create deployment http --image=nainx --dry-run=client -o yaml
[root@master ~]# cat nginx.yaml
apiVersion: apps/v1
kind: Deployment //指定的资源名字
metadata:
creationTimestamp: null
labels:
app: nginx //标签名,后面需要引用
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx
spec:
containers:
- image: nginx //镜像名
name: nginx
ports:
- containerPort: 80
resources: {}
status: {}
nginx容器的映射
[root@master ~]# cat nginxs.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
selector:
app: nginx //nginx容器的标签
ports:
- nodePort: 32200 //指定映射的端口
port: 80
protocol: TCP
targetPort: 80
type: NodePort
运行容器
[root@master ~]# kubectl apply -f nginx.yaml
deployment.apps/nginx created
[root@master ~]# kubectl apply -f nginxs.yaml
service/nginx create
启动成功
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-d46f5678b-9tc77 1/1 Running 0 108s
nginx 80端口映射32200端口
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d23h
nginx NodePort 10.99.41.141 <none> 80:32200/TCP 34s
查看容器启动的细节
[root@master ~]# kubectl describe pods nginx
启动成功
Normal Scheduled 78s default-scheduler Successfully assigned default/nginx-d46f5678b-9tc77 to node
Normal Pulling 77s kubelet, node Pulling image "nginx"
Normal Pulled 54s kubelet, node Successfully pulled image "nginx"
网页访问 http://节点ip:32200
创建mysql容器
[root@master mysql]# cat mysql.yaml
apiVersion: v1
kind: ReplicationController
metadata:
labels:
app: mysql
name: mysql
spec:
replicas: 1
selector:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql
name: mysql
ports:
- containerPort: 3306
env: //添加环境
- name: MYSQL_ROOT_PASSWORD
value: "123456"
资源调用
[root@master mysql]# cat mysqls.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
selector:
app: mysql
ports:
- port: 3306
运行容器
[root@master mysql]# kubectl apply -f mysql.yaml
replicationcontroller/mysql created
[root@master mysql]# kubectl apply -f mysqls.yaml
service/mysql created
查看是否启动了
[root@master mysql]# kubectl get pod
NAME READY STATUS RESTARTS AGE
mysql-vzgzp 1/1 Running 0 49s
进入容器在容器中打开数据库
[root@master mysql]# kubectl exec -it mysql-vzgzp /bin/bash mysql-vzgzp(启动后pod
查询到的名字)
进入数据库
root@mysql-vzgzp:/# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.25 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>