扩展Docker JBoss WildFly服务器不工作

希望一切都好。

Env:centos 7.3.1611,kubernetes:1.5,docker 1.12

问题1:扩展的jboss docker无法正常工作,但是docker image成功创build

POD得到一个错误见下面,第7步。

问题2:一旦问题#1固定,然后我想上传到docker集线器: https : //hub.docker.com/

如果可能,我如何上传步骤。

1) pull docker pull jboss/wildfly 2) vi Dockerfile FROM jboss/wildfly RUN /opt/jboss/wildfly/bin/add-user.sh admin admin123$ --silent CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"] 3) Extend docker image docker build --tag=nbasetty/wildfly-server . 4) [root@centos7 custom-jboss]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nbasetty/wildfly-server latest c1fbb87faffd 43 minutes ago 583.8 MB docker.io/httpd latest e0645af13ada 2 weeks ago 177.5 MB 5)vi jboss-wildfly-rc-service-custom.yaml apiVersion: v1 kind: Service metadata: name: wildfly-service spec: externalIPs: - 10.0.2.15 selector: app: wildfly-rc-pod ports: - name: web port: 8080 #- name: admin-console # port: 9990 type: LoadBalancer --- apiVersion: v1 kind: ReplicationController metadata: name: wildfly-rc spec: replicas: 2 template: metadata: labels: app: wildfly-rc-pod spec: containers: - name: wildfly image: nbasetty/wildfly-server ports: - containerPort: 8080 #- containerPort: 9990 6) kubectl create -f jboss-wildfly-rc-service-custom.yaml 7) [root@centos7 jboss]# kubectl get pods NAME READY STATUS RESTARTS AGE mysql-pvc-pod 1/1 Running 6 2d wildfly-rc-d0k3h 0/1 ImagePullBackOff 0 23m wildfly-rc-hgsfj 0/1 ImagePullBackOff 0 23m [root@centos7 jboss]# kubectl logs wildfly-rc-d0k3h Error from server (BadRequest): container "wildfly" in pod "wildfly-rc-d0k3h" is waiting to start: trying and failing to pull image 

很高兴你已经find一种方法来使其工作。 这是我遵循的步骤。

  1. 我将node-01标记为“dbserver:mysql”
  2. 在node-01中创builddocker镜像
  3. 创造了这个吊舱,它的工作。
 apiVersion: v1 kind: ReplicationController metadata: name: wildfly-rc spec: replicas: 2 template: metadata: labels: app: wildfly-rc-pod spec: containers: - name: wildfly image: nbasetty/wildfly-server imagePullPolicy: IfNotPresent ports: - containerPort: 8080 nodeSelector: dbserver: mysql 

重新创build问题:

 docker pull jboss/wildfly mkdir jw cd jw echo 'FROM jboss/wildfly RUN /opt/jboss/wildfly/bin/add-user.sh admin admin123$ --silent CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]' | tee Dockerfile docker build --tag=docker.io/surajd/wildfly-server . 

查看可用的图像:

 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/surajd/wildfly-server latest 10e96902ea12 11 seconds ago 583.8 MB 

创build一个工作的configuration:

 echo ' apiVersion: v1 kind: Service metadata: name: wildfly spec: selector: app: wildfly ports: - name: web port: 8080 type: LoadBalancer --- apiVersion: apps/v1beta1 kind: Deployment metadata: name: wildfly spec: replicas: 2 template: metadata: labels: app: wildfly spec: containers: - name: wildfly image: docker.io/surajd/wildfly-server imagePullPolicy: Never ports: - containerPort: 8080 ' | tee config.yaml kubectl create -f config.yaml 

注意imagePullPolicy: Never字段imagePullPolicy: Never ,这可以帮助您使用节点上可用的图像(使用docker build的图像)。 这适用于单节点群集,但可能会或可能不会在多节点群集上工作。 所以不build议把这个值,但是因为我们在单节点集群上做实验,所以我们可以把它设置为Never 。 始终将其设置为imagePullPolicy: Always 。 所以,每当预定的时间,图像将被从registry中拉出。 阅读关于imagePullPolicy和一些configuration相关的提示 。

现在从registry中拉图像应该在registry中,所以要回答你的问题推送到docker集线器运行命令:

 docker push docker.io/surajd/wildfly-server 

所以在上面的例子surajd您的dockerregistry用户名replacesurajd


以下是我在CentOS上设置单一节点群集的步骤:

我的机器版本:

 $ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 

这是我所做的:

在CentOS上设置单节点k8s群集如下( src1 & src2 ):

 yum update -y cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF setenforce 0 yum install -y docker kubelet kubeadm kubectl kubernetes-cni systemctl enable docker && systemctl start docker systemctl enable kubelet && systemctl start kubelet sysctl net.bridge.bridge-nf-call-iptables=1 sysctl net.bridge.bridge-nf-call-ip6tables=1 kubeadm init cp /etc/kubernetes/admin.conf $HOME/ chown $(id -u):$(id -g) $HOME/admin.conf export KUBECONFIG=$HOME/admin.conf kubectl taint nodes --all node-role.kubernetes.io/master- 

现在k8s版本:

 # kubectl version Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"clean", BuildDate:"2017-05-19T18:44:27Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"clean", BuildDate:"2017-05-19T18:33:17Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}