官网地址
自动更新证书
https://github.com/yuyicai/update-kube-cert/blob/master/README-zh_CN.md
不错的参考文档
常用命令
kubeadm
#启动一个 Kubernetes 主节点,初始化master时使用
kubeadm init
#启动一个 Kubernetes 工作节点并且将其加入到集群
kubeadm join
#更新一个 Kubernetes 集群到新版本
kubeadm upgrade
#如果使用 v1.7.x 或者更低版本的 kubeadm 初始化集群,您需要对集群做一些配置以便使用 kubeadm upgrade 命令
kubeadm config
#管理 kubeadm join 使用的令牌
kubeadm token
#还原 kubeadm init 或者 kubeadm join 对主机所做的任何更改
kubeadm reset
查看证书到期时间
kubeadm certs check-expiration
入门实例
mysql实例创建
首先创建一个Deployment的定义文件 mysql-deploy.yaml
apiVersion: apps/v1 #API版本
kind: Deployment #副本控制器RC,表明资源对于的类型
metadata:
labels: #标签
app: mysql
name: mysql #对象名称,全局唯一
spec: #部分是对Deployment相关属性的定义
replicas: 1 #预期的副本数量
selector: #pod选择器,指定选择哪个pod
matchLabels:
app: mysql
template: #pod模板
metadata:
labels:
app: mysql
spec:
containers: #定义容器
- image: mysql:5.7 #根据实际情况填写 mysql:5.7
name: mysql
ports:
- containerPort: 3306 #容器应用监听的端口
env: #注入容器内的环境变量
- name: MYSQL_ROOT_PASSWORD
value: "wj123456"
开始创建执行
[root@k8s-master1 yaml]# kubectl apply -f mysql-deploy.yaml
deployment.apps/mysql created
查看刚建好的Deployment
[root@k8s-master1 yaml]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
mysql 0/1 1 0 27s
如果显示0,那说明 要等会,创建过程需要时间,再次查看就好了
[root@k8s-master1 yaml]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
mysql 1/1 1 1 69s
查看pod创建情况,创建过程中显示Pending ,创建完成显示Running
[root@k8s-master1 yaml]# kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-647dbc9bb4-jpdj9 1/1 Running 0 2m17s
最后在创建一个关联的服务service,对外提供服务mysql-svc.yaml
apiVersion: v1
kind: Service #表明是service
metadata:
name: mysql #service中的全局唯一名称
spec: #部分是对Deployment相关属性的定义
ports:
- port: 3306 #service提供的端口号
selector: #service对应的pod拥有这里定义的标签。
app: mysql
开始创建
[root@k8s-master1 yaml]# kubectl apply -f mysql-svc.yaml
service/mysql created
查看
[root@k8s-master1 yaml]# kubectl get svc mysql
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql ClusterIP 10.1.50.152 <none> 3306/TCP 22s
可以看到mysql服务被分配一个值为10.1.50.152的ClusterIP地址上了,其他的pod,就可以通过ClusterIP+端口号来连接和访问它了。
tomcat实例创建
老规矩先创建yaml文件
vim myweb-deploy.yaml
apiVersion: apps/v1 #API版本
kind: Deployment #副本控制器RC,表明资源对于的类型
metadata:
labels: #标签
app: myweb
name: myweb #对象名称,全局唯一
spec: #部分是对Deployment相关属性的定义
replicas: 2 #预期的副本数量
selector: #pod选择器,指定选择哪个pod
matchLabels:
app: myweb
template: #pod模板
metadata:
labels:
app: myweb
spec:
containers: #定义容器
- image: tomcat:8.5.3
name: myweb
ports:
- containerPort: 8080 #容器应用监听的端口,这个端口不对外访问
env: #注入容器内的环境变量
- name: MYSQL_SERVICE_HOST
value: 192.168.60.128
创建
[root@k8s-master1 yaml]# kubectl apply -f myweb-deploy.yaml
deployment.apps/myweb created
查看
[root@k8s-master1 yaml]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
mysql 1/1 1 1 61m
myweb 1/2 2 1 65s
nginx 1/1 1 1 28h
创建对应的service也就是svc
vim myweb-svc.yaml
apiVersion: v1
kind: Service #表明是service
metadata:
name: myweb #service中的全局唯一名称
spec: #部分是对Deployment相关属性的定义
type: NodePort
ports:
- port: 8080 #service提供的端口号,要保持一直
nodePort: 30002 #这个才是对外提供访问的地址
selector: #service对应的pod拥有这里定义的标签。
app: myweb
创建
[root@k8s-master1 yaml]# kubectl create -f myweb-svc.yaml
service/myweb created
查看
[root@k8s-master1 yaml]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 41h
mysql ClusterIP 10.1.50.152 <none> 3306/TCP 65m
myweb NodePort 10.1.153.11 <none> 8080:30002/TCP 59s
nginx NodePort 10.1.86.38 <none> 80:31922/TCP 28h
完成,这样就可以通过浏览器访问了
![图片[1]-k8s-秋风落叶](http://1.94.39.166/wp-content/uploads/2022/11/image-26.png)
如果无法启动,可能有以下情况:
- 防火墙设置无法访问30002端口
创新新的命名空间
老规矩先写配置文件
vim wjnamespace-deploy.yaml
apiVersion: v1 #API版本
kind: Namespace
metadata:
name: wjnamespace
执行创建
[root@k8s-master1 yaml]# kubectl apply -f wjnamespace-deploy.yaml
namespace/wjnamespace created
新创建一个pod然后加入新的空间
vim wjnamespace-busybox-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: wjnamespace
spec: #部分是对Deployment相关属性的定义
containers:
- image: busybox
command:
- sleep
- "3600"
name: busybox
#执行创建
[root@k8s-master1 yaml]# kubectl apply -f wjnamespace-busybox-pod.yaml
pod/busybox created
查看新命名空间下的pod
[root@k8s-master1 yaml]# kubectl get pods --namespace=wjnamespace
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 46s
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容